求大佬解惑水仙花数的问题
1. 寻找水仙花数题目要求:如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如153 = 1^3+5^3+3^3,因此153是一个水仙花数。编写一个程序,找出所有的水仙花数。
小甲鱼答案(我改了下参数,使第一个为水仙花数):
def Narcissus():
for each in range(153, 1000):
temp = each
sum = 0
while temp:
sum = sum + (temp%10) ** 3
temp = temp // 10# 注意这里用地板除
if sum == each:
print(each, end='\t')
print("所有的水仙花数分别是:", end='')
Narcissus()
求解,为什么把 if sum == each:
下面的print 改为 return (each,end ='\t')
会一个值都打印不出来
就算到return终止函数,可明明第一个数就是水仙花数啊????
难受,求大佬解惑(万分感谢)
return只是返回给函数一个结果,不会有打印的操作,当然肉眼是看不到的,解释器里可以看得到,或者 print(Narcissus()) 求解,为什么把 if sum == each:
下面的print 改为 return (each,end ='\t')
会一个值都打印不出来
就算到return终止函数,可明明第一个数就是水仙花数啊????
编辑器中执行代码,不会自动将函数返回值打印
交互界面执行代码,会将返回值自动打印
所以你在编辑器中需要配合 print 函数才能将函数返回值打印,即 print(Narcissus())
另外这里若用 return ,那么 for 循环就没有意义了,实际上只执行了 153 这个值时候遇到 return 后 for 循环就结束函数了
页:
[1]