水仙花
零基础python 18讲水仙花那题这样写为啥会多个999???
把代码拆开写,那样看着有点乱{:10_277:}
print("一千以内的水仙花数为: ")
for n in range(100, 1000):
hun = n // 100
ten = (n - hun * 100) // 10
ind = n % 10
m = hun**3 + ten**3 + ind**3
if n == m:
print("%d \t" %n, end="") 本帖最后由 逃兵 于 2021-4-18 10:46 编辑
把return x去掉
把print(fuction())改成fuction()
def function():
for x in range(100,1000):
if x == (x%10)**3+(x//100)**3+((x//10)%10)**3:
print(x)
function() 因为你多了一个return x
这个return执行的时候刚好是for循环进行完的时候
此时,x=999,返回值返回给最后一行调用时的print函数
自然就多打印了一次999
既然函数内部已经通过if判断print了
根本就用不到返回值
调用的时候直接function()就好 逃兵 发表于 2021-4-18 10:44
把return x去掉
把print(fuction())改成fuction()
为啥这样就可以了 昨非 发表于 2021-4-18 10:47
因为你多了一个return x
这个return执行的时候刚好是for循环进行完的时候
此时,x=999,返回值返回给最后 ...
懂了,多谢大佬 为你bu再恋 发表于 2021-4-18 10:51
懂了,多谢大佬
额,没有最佳答案的话也可以右下角评分加个贡献
算是鼓励下回答问题的同学(厚颜无耻{:10_245:})
页:
[1]