鱼C论坛

 找回密码
 立即注册
查看: 2198|回复: 14

[已解决]为啥说shu没定义?应该怎样修改?

[复制链接]
发表于 2021-5-26 00:05:01 | 显示全部楼层 |阅读模式

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

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

x
截屏2021-05-26 上午12.03.59.png
最佳答案
2021-5-26 11:31:59
本帖最后由 小伤口 于 2021-5-26 11:33 编辑

def shuixianhua(a=100,b=500):
    shu = []                            # 初始化位置出现问题
    for i in range(a,b+1):
        sum = 0
        shu1 = i
        while shu1:                     # 缩进出现问题(语法关系)
            sum += (shu1 % 10) **3
            shu1 //=10
            if sum == i:                # 缩进出现问题(语法关系)
                shu.append(i)
    return shu         # 添加函数返回值
# a = int(input())     接收键盘输入,并没有使用
# b = int(input())
a=shuixianhua()
print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-26 00:05:54 | 显示全部楼层
水仙花数,默认从100到500,但是用户可以输入不同区间的数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 00:14:21 | 显示全部楼层
本帖最后由 小伤口 于 2021-5-26 00:15 编辑

shu属于函数里面的,是局部变量
试试在函数里加一个
return shu
把print(shu)删掉
然后再试一试
或者在函数外面写一句
shu=[]
应该也可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-26 00:24:13 | 显示全部楼层
截屏2021-05-26 上午12.22.50.png 现在返回的是空列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-26 00:27:16 | 显示全部楼层
截屏2021-05-26 上午12.26.50.png 您好,您这个是怎样写代码的啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-26 00:28:07 | 显示全部楼层
我找不到在哪写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 00:42:55 | 显示全部楼层

你把return(shu)删掉试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 00:44:07 | 显示全部楼层

你把代码发给我吧
复制粘贴到右上角<>这个符号里面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 09:35:55 | 显示全部楼层
shu是局部变量,在外部是无法找到函数里面的变量的,所以自然为报错。简单的办法就是在把print方法放到函数里面,缩进与for和if对齐。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 09:46:46 | 显示全部楼层
菜de嚣张 发表于 2021-5-26 00:05
水仙花数,默认从100到500,但是用户可以输入不同区间的数
def shuixianhua(a=100,b=500):
    shu = []                            # 初始化位置出现问题
    for i in range(a,b+1):
        sum = 0
        shu1 = i
        while shu1:                     # 缩进出现问题(语法关系)
            sum += (shu1 % 10) **3
            shu1 //=10
            if sum == i:                # 缩进出现问题(语法关系)
                shu.append(i)
    return shu         # 添加函数返回值
# a = int(input())     接收键盘输入,并没有使用
# b = int(input())
print(shuixianhua())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 11:12:31 | 显示全部楼层
啊这,以我浅薄的知识,他这不是顺序错了吗,应该先shuixianhua(),再print()吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 11:28:02 From FishC Mobile | 显示全部楼层
灰晨 发表于 2021-5-26 11:12
啊这,以我浅薄的知识,他这不是顺序错了吗,应该先shuixianhua(),再print()吧

都可以的,但不过return一下.,才更像一个函数嘛~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 11:31:59 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 小伤口 于 2021-5-26 11:33 编辑

def shuixianhua(a=100,b=500):
    shu = []                            # 初始化位置出现问题
    for i in range(a,b+1):
        sum = 0
        shu1 = i
        while shu1:                     # 缩进出现问题(语法关系)
            sum += (shu1 % 10) **3
            shu1 //=10
            if sum == i:                # 缩进出现问题(语法关系)
                shu.append(i)
    return shu         # 添加函数返回值
# a = int(input())     接收键盘输入,并没有使用
# b = int(input())
a=shuixianhua()
print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 13:06:08 From FishC Mobile | 显示全部楼层
在前面写shu = [],然后先执行函数再print
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-26 13:27:22 | 显示全部楼层
感谢大家的帮助!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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