为啥说shu没定义?应该怎样修改?
水仙花数,默认从100到500,但是用户可以输入不同区间的数 本帖最后由 小伤口 于 2021-5-26 00:15 编辑
shu属于函数里面的,是局部变量
试试在函数里加一个
return shu
把print(shu)删掉
然后再试一试
或者在函数外面写一句
shu=[]
应该也可以 现在返回的是空列表{:5_104:} 您好,您这个是怎样写代码的啊? 我找不到在哪写{:10_250:} 菜de嚣张 发表于 2021-5-26 00:28
我找不到在哪写
你把return(shu)删掉试试 菜de嚣张 发表于 2021-5-26 00:28
我找不到在哪写
你把代码发给我吧
复制粘贴到右上角<>这个符号里面 shu是局部变量,在外部是无法找到函数里面的变量的,所以自然为报错。简单的办法就是在把print方法放到函数里面,缩进与for和if对齐。 菜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()) 啊这,以我浅薄的知识,他这不是顺序错了吗,应该先shuixianhua(),再print()吧 灰晨 发表于 2021-5-26 11:12
啊这,以我浅薄的知识,他这不是顺序错了吗,应该先shuixianhua(),再print()吧
都可以的,但不过return一下.,才更像一个函数嘛~ 本帖最后由 小伤口 于 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) 在前面写shu = [],然后先执行函数再print 感谢大家的帮助!
页:
[1]