大家好,请教Python老版19讲动动手1
def find_flower(number = 153):if number == int(str(number)) ** 3 + int(str(number)) ** 3 + int(str(number)) ** 3:
return number
else:
pass
for number in range(100,1000):
print(find_flower(number))
我就是不明白,感觉自己代码没问题,但是运行起来就是900个None
路过的大神麻烦给小弟看一下啊{:10_329:} def find_flower(number = 153):
if number == int(str(number)) ** 3 + int(str(number)) ** 3 + int(str(number)) ** 3:
print(number)#吧return换成print放在函数内
else:
pass
for number in range(100,1000):
find_flower(number)#这里直接调用就好 因为你else分支里面没有返回值(none)
而 print(find_flower(number))这一语句打印的实际上是函数的返回值
所以在所难免的会打印出none
上述代码改了两处,很好理解的 def find_flower(number = 153):
if number == int(str(number)) ** 3 + int(str(number)) ** 3 + int(str(number)) ** 3:
return number
else:
pass
for number in range(100,1000):
if find_flower(number):
print(find_flower(number))
因为你else 默认是 return None 昨非 发表于 2021-1-30 20:02
因为你else分支里面没有返回值(none)
而 print(find_flower(number))这一语句打印的实际上是函数的返回 ...
好的,谢谢您。
但是我还想问一句,关于第一处的修改
为啥用return返回啥都得不到
用print打印,结果就出来了呢{:10_272:} qq1151985918 发表于 2021-1-30 20:07
因为你else 默认是 return None
okk,谢谢您{:5_109:}
页:
[1]