漂油瓶 发表于 2021-9-19 10:46:10

大佬们,这整个程序没有报错,但是也没有输出结果怎么回事,

#求100-999之间的水仙花数


for i in range(100,200):
    if i==((i//100**3)+int(i/10%10**3)+(i%10**3)):
      print(i)
    i+=1

梦回连营 发表于 2021-9-19 11:02:37

你这式子有问题,我不知道你想要的式子是什么,但我猜测你没有考虑到运算符优先级的问题,运算符**的优先级是大于你式子中除括号外其余的运算符的,也就是第一时间会先进行指数运算,所以你的条件判断在 i 在(100,200)的范围内是不会成立的,也就什么输出都没有

一条大蠢狗 发表于 2021-9-19 11:03:44

你的括号有问题,应该这样表示(i//100)**3,不然算不出来,自然就没有输出打印

傻眼貓咪 发表于 2021-9-19 12:13:32

本帖最后由 傻眼貓咪 于 2021-9-19 12:14 编辑

运算符优先级乘方(**) 高于乘除,取商,取余(*,/,//,%)

比如:i/10%10**3,会先执行后面的 10**3

漂油瓶 发表于 2021-9-19 12:17:02

蟹蟹
页: [1]
查看完整版本: 大佬们,这整个程序没有报错,但是也没有输出结果怎么回事,