鱼C论坛

 找回密码
 立即注册
查看: 1655|回复: 5

[已解决]第18讲求水仙花数

[复制链接]
发表于 2021-5-29 14:46:38 | 显示全部楼层 |阅读模式

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

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

x
动动手:求所有三位数的水仙花数
代码如下:
def num(x):
    100<= x<1000
    a= x%10
    b=int((x/10)%10)
    c=int((x/100)%10)
    if x==a**3+b**3+c**3:
        print('所有的水仙花数是',result.end=' ')
num()

报错显示:keyword can't be expression
不知道咋改,求大神指教一下!谢谢啦
最佳答案
2021-5-29 15:16:03
def num(x):             #定义一个函数名为num,参数为x。这定义的参数在调用时没有用到
    100<= x<1000    #python的循环并不是这样写
    a= x%10            
    b=int((x/10)%10) #python中可使用‘//’用于整除
    c=int((x/100)%10)
    if x==a**3+b**3+c**3:
        print('所有的水仙花数是',result.end=' ') // 在python3.0中,直接使用end=""作为结束符的修改
num()

-----------------------------
建议代码改成:
def num():
        for x in range(100, 999):
        a= x % 10
        b = x // 10 % 10
        c = x // 100

        if (a** 3) + (b ** 3) + (b ** 3) == num:
            print(x, end=' ')
num()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-29 14:59:30 | 显示全部楼层
我大概知道哪里错了,那个result是没有定义的,所以要删掉。而且定义的函数num(),只适合判断特定的数值是不是水仙花数,不能求出一个范围内的水仙花数,所以还是按答案的做法比较好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-29 15:08:06 | 显示全部楼层
本帖最后由 张静aa 于 2021-5-29 15:09 编辑
张静aa 发表于 2021-5-29 14:59
我大概知道哪里错了,那个result是没有定义的,所以要删掉。而且定义的函数num(),只适合判断特定的数值是不 ...


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

使用道具 举报

发表于 2021-5-29 15:16:03 | 显示全部楼层    本楼为最佳答案   
def num(x):             #定义一个函数名为num,参数为x。这定义的参数在调用时没有用到
    100<= x<1000    #python的循环并不是这样写
    a= x%10            
    b=int((x/10)%10) #python中可使用‘//’用于整除
    c=int((x/100)%10)
    if x==a**3+b**3+c**3:
        print('所有的水仙花数是',result.end=' ') // 在python3.0中,直接使用end=""作为结束符的修改
num()

-----------------------------
建议代码改成:
def num():
        for x in range(100, 999):
        a= x % 10
        b = x // 10 % 10
        c = x // 100

        if (a** 3) + (b ** 3) + (b ** 3) == num:
            print(x, end=' ')
num()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-29 15:21:49 | 显示全部楼层

def num():
    for each in range(100,1000):
        a=each%10
        b=int((each/10)%10)
        c=int((each/100)%100)
        if each == a**3+b**3+c**3:
              print(each,end=' ')
print ('所有的水仙花数是:',end=' ')
num()
              运行成功啦!啦啦啦啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-29 15:23:12 | 显示全部楼层
LJYUYU 发表于 2021-5-29 15:16
def num(x):             #定义一个函数名为num,参数为x。这定义的参数在调用时没有用到
    100

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 17:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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