鱼C论坛

 找回密码
 立即注册
查看: 1186|回复: 6

[已解决]水仙花

[复制链接]
发表于 2020-6-9 15:26:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

                               
登录/注册后可看大图


如图片中所示,在没有学习函数时,左边求出了水仙花数的值,用了函数这样写为什么不行呢?
而且下面输入了sxh()应该是运行程序吧,也没有运行,还是手动调用函数,
来自一只初学鱼油的疑问,小甲鱼的答案不难我看得懂,就是这里不明白是为什么,求解答
最佳答案
2020-6-9 16:48:36
两个问题。
第一、函数返回值需要打印,不打印是看不到结果的
第二、你的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())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-9 15:28:07 | 显示全部楼层
可以的~只是你没有打印返回值,你只是单纯的调用了函数
print(sxh())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 15:29:19 | 显示全部楼层
函数的返回值需要用print打印出来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 16:43:26 | 显示全部楼层

要连续打印要这样写
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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 16:48:36 | 显示全部楼层    本楼为最佳答案   
两个问题。
第一、函数返回值需要打印,不打印是看不到结果的
第二、你的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())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 16:54:40 | 显示全部楼层
Twilight6 发表于 2020-6-9 16:43
要连续打印要这样写

谢谢哥耐心讲解!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 16:56:58 | 显示全部楼层
2020-魄力 发表于 2020-6-9 16:54
谢谢哥耐心讲解!

。。。没事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 19:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表