菜de嚣张 发表于 2021-5-26 00:05:01

为啥说shu没定义?应该怎样修改?


菜de嚣张 发表于 2021-5-26 00:05:54

水仙花数,默认从100到500,但是用户可以输入不同区间的数

小伤口 发表于 2021-5-26 00:14:21

本帖最后由 小伤口 于 2021-5-26 00:15 编辑

shu属于函数里面的,是局部变量
试试在函数里加一个
return shu
把print(shu)删掉
然后再试一试
或者在函数外面写一句
shu=[]
应该也可以

菜de嚣张 发表于 2021-5-26 00:24:13

现在返回的是空列表{:5_104:}

菜de嚣张 发表于 2021-5-26 00:27:16

您好,您这个是怎样写代码的啊?

菜de嚣张 发表于 2021-5-26 00:28:07

我找不到在哪写{:10_250:}

小伤口 发表于 2021-5-26 00:42:55

菜de嚣张 发表于 2021-5-26 00:28
我找不到在哪写

你把return(shu)删掉试试

小伤口 发表于 2021-5-26 00:44:07

菜de嚣张 发表于 2021-5-26 00:28
我找不到在哪写

你把代码发给我吧
复制粘贴到右上角<>这个符号里面

Hoiste 发表于 2021-5-26 09:35:55

shu是局部变量,在外部是无法找到函数里面的变量的,所以自然为报错。简单的办法就是在把print方法放到函数里面,缩进与for和if对齐。

z5560636 发表于 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())

灰晨 发表于 2021-5-26 11:12:31

啊这,以我浅薄的知识,他这不是顺序错了吗,应该先shuixianhua(),再print()吧

小伤口 发表于 2021-5-26 11:28:02

灰晨 发表于 2021-5-26 11:12
啊这,以我浅薄的知识,他这不是顺序错了吗,应该先shuixianhua(),再print()吧

都可以的,但不过return一下.,才更像一个函数嘛~

小伤口 发表于 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)

Minecraft程序猿 发表于 2021-5-26 13:06:08

在前面写shu = [],然后先执行函数再print

菜de嚣张 发表于 2021-5-26 13:27:22

感谢大家的帮助!
页: [1]
查看完整版本: 为啥说shu没定义?应该怎样修改?