IDLE中的NameError问题 - Python

时间:2017-04-11 18:55:13

标签: python function nameerror

我的自制代码遇到了一些问题。

def even(a, b):
    f = []
    while a <= b:
        if a % 2 == 0:
            f.append(a)
        a = a + 1
    return f;

当我试图从shell调用它时,它说:

Traceback (most recent call last):
File "<pyshell#43>", line 1, in <module>
even(0,200)
NameError: name 'even' is not defined.

我认为这不是一个非常棘手的问题,但你能帮我吗? 先谢谢你了。 干杯

2 个答案:

答案 0 :(得分:0)

两件事。你是否正确缩进你的功能,你如何调用你的功能?以下代码有效:

def even(a, b):
    f = []
    while a <= b:
        if a % 2 == 0:
            f.append(a)
        a = a + 1
    return f;

print(even(2,3))
#output: [2]

注意缩进以及甚至在定义后调用它的事实。

编辑:我注意到你已经开始工作,现在是修改你的功能的某些部分的好时机,即给变量f一个更具描述性的名称。

答案 1 :(得分:0)

如果您想从shell运行它,您可能希望:

  1. python输入shell,启动您的python解释器
  2. 输入from <your-code's-filename.py> import even
  3. 然后您可以尝试使用该功能:even(0,200)

    但你也可以像在Wright建议的那样在IDLE中运行它。