钢镚儿聚集地 发表于 2021-1-27 15:40:22

自改水仙花函数输出结果为None

代码如下:
def narcissus(x=range(100,1000)):
    result = 0
    for each in x:
      for i in str(each):
            result += int(i)**3
      if result == each:
            print(each)

print(narcissus())输出结果为None,但没检查出代码哪里有问题。

逃兵 发表于 2021-1-27 15:50:36

result = 0需要在循环中
def narcissus(x=range(100,1000)):
    for each in x:
      result = 0
      for i in str(each):
            result += int(i)**3
      if result == each:
            print(each)

°蓝鲤歌蓝 发表于 2021-1-27 15:53:40

result = 0
要放在第一个 for 循环下面

jackz007 发表于 2021-1-27 16:00:59

本帖最后由 jackz007 于 2021-1-27 16:14 编辑

    narcissus() 没有返回值,所以,print(narcissus()) 自然就是 None 了。
   还有,这 2 句
    result = 0
    for each in x:
   result = 0 这一句可不能一劳永逸,在每次 for 循环开始的时候,都必须执行一次,所以,得改成这样
    for each in x:
      result = 0
   narcissus()自带打印输出,所以,这样调用就行了:
narcissus()

钢镚儿聚集地 发表于 2021-1-27 16:42:31

逃兵 发表于 2021-1-27 15:50
result = 0需要在循环中

谢谢ψ(`∇′)ψ
页: [1]
查看完整版本: 自改水仙花函数输出结果为None