石页不禾几 发表于 2020-7-4 17:17:56

Python课后习题疑惑

课后习题18,求出所有的水仙花数,为什么这个函数打印不出来东西呢?而且,程序也没有报错,很奇怪。
def flowers():
        for num in range(100,1000):
                each = num
                sun = 0
                a = each %10
                b = each // 10
                c = b %10
                d = c //10
                sum = a **3 + c **3 + d**3
                if sum == each:
                        print(each)

Twilight6 发表于 2020-7-4 17:18:49

本帖最后由 Twilight6 于 2020-7-4 17:23 编辑

没有调用函数吧?

d = c //10

还有这个地方错了,你应该除以 b 的 ,而不是除以 c , c 是 余数,c //10 就等于 0 了

改成:d = b //10

def flowers():
    for num in range(100, 1000):
      each = num
      a = each % 10 # 个位数
      b = each // 10
      c = b % 10      # 十位数
      d = b // 10      # 百位数
      sum = a ** 3 + c ** 3 + d ** 3
      if sum == each:
            print(each)

flowers()

石页不禾几 发表于 2020-7-4 18:13:01

Twilight6 发表于 2020-7-4 17:18
没有调用函数吧?

d = c //10


嗯嗯,感谢感谢

heidern0612 发表于 2020-7-4 18:13:01

你这只是定义,没调用。

就相当于我把图纸画好了,但是没造出来东西一样。

Twilight6 发表于 2020-7-4 18:54:54

石页不禾几 发表于 2020-7-4 18:13
嗯嗯,感谢感谢

如果问题解决,记得设置【最佳答案】
页: [1]
查看完整版本: Python课后习题疑惑