水仙花
https://xxx.ilovefishc.com/album/202006/09/151900e4z3pkx4xsnxbdbx.png如图片中所示,在没有学习函数时,左边求出了水仙花数的值,用了函数这样写为什么不行呢?
而且下面输入了sxh()应该是运行程序吧,也没有运行,还是手动调用函数,
来自一只初学鱼油的疑问,小甲鱼的答案不难我看得懂,就是这里不明白是为什么,求解答{:5_108:} 可以的~只是你没有打印返回值,你只是单纯的调用了函数
print(sxh()) 函数的返回值需要用print打印出来。
要连续打印要这样写
def sxh():
num = []
for each in range(100,1000):
a = each % 10
b = (each // 10) % 10
c = (each // 100) % 10
if each == a**3 + b**3 + c**3:
num.append(each)
print(each)
if num == []:
print('在指定范围内未找到水仙花数!')
sxh() 两个问题。
第一、函数返回值需要打印,不打印是看不到结果的
第二、你的for循环只进行一次就结束了,因为当each为100时,不管后面进入if…else…的哪个分支,都会有return,return就结束函数,直接返回了。
帮你修改了一下。
想只获得一个水仙花数就把result相关的都删掉,直接return each,想获得全部水仙花数就用result列表存放并返回
def sxh():
result=[]
for each in range(100,1000):
a=each%10
b=(each//10)%10
c=each//100
if each==a**3+b**3+c**3:
#return each#只找第一个
result.append(each)
return result
print(sxh())
Twilight6 发表于 2020-6-9 16:43
要连续打印要这样写
谢谢哥耐心讲解! 2020-魄力 发表于 2020-6-9 16:54
谢谢哥耐心讲解!
。。。没事
页:
[1]