2017-04-11 11 views
0

私の自作コードに問題がありました。私はそれが言うシェルからそれを呼び出すことがトラインだときIDLEでのNameErrorのトラブル - Python

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

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

私はそれが本当に難しい問題ではないと思うが、uが私のとにかくを助けることができますか? ありがとうございます。 乾杯。

+0

この関数をどのように呼びますか? –

+0

他の場所で問題になる可能性がありますが、ここには間違ったものはありません。 – SneakyTurtle

+2

IDEから '実行 'をクリックしましたか?あなたのIDEにコードを書き込んだ後、実行しないでシェルから関数を呼び出そうとしたようだから、 – Wright

答えて

0

2つのもの。あなたはあなたの関数を正しくインデントしていますか、どのように関数を呼び出していますか?次のコードが動作します。

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] 

インデントとそれが定義された後でも呼び出されていることに注目してください。

編集:私はあなたが機能していることに気がつきました。今では、関数のいくつかの部分を改ざんする、すなわち変数をよりわかりやすい名前にするのが良い時期です。

0

あなたのシェルからそれを実行したい場合は、あなたがしたい:

  1. あなたのPythonインタプリタを起動するために、シェルにpythonを入力し、使用することができますfrom <your-code's-filename.py> import even

を入力します。試したときの機能:even(0,200)

でも、WrightのようにIDLE内から実行することもできます。

+0

ええ、ありがとう。 IDLEの中でそれを走らせばうまくいった – user3714215