2016-09-20 18 views
0

私はPythonの基本をたどり、IDLEを使っています。リアルタイムでスクリプトを実験するのに便利です。PythonのインデントエラーIDLE

ファイルとして問題なくこのスクリプトを実行できますが、私はIDLE!の最後のprint文を入れることはできません。私はインデントを試しました、4つのスペース、インデントはありません。私が間違っていることを説明してください。

while True: 
    print ('Who are you?') 
    name = input() 
    if name != 'Joe': 
     continue 
    print('Hello, Joe. What is the password? (It is a fish.)') 
    password = input() 
    if password == 'swordfish': 
     break 
print('value') 
SyntaxError: invalid syntax 

答えて

1

一度に1つのステートメントを入力できます。 whileループはループそのものとみなされ、ループはコードブロックであるため、その中のすべてが問題ありません。

しかし、最後のprintは新しいコマンドです。 whileループを最初に実行し、インタプリタの後にprintと入力する必要があります。

+0

私はそれが事実だと思った。みんな助けてくれてありがとう。 – user2212485

+0

回答を受け入れて回答を終了できますか? –

1

IDLEに一度に複数のステートメントを貼り付けることはできません。問題はインデントとは関係がありません。 whileループは1つの複合ステートメントを構成し、最後のループはprintを構成します。

print('A') 
print('B') 

これが問題を持っているという事実にもより明確に問題がインデントの1をins'tことを示しています。あなたがIDLEに一度貼り付けるしようとすると、

次のようにも問題があります。

0

あなたは、あなたが他の人が親切に指摘したように

while True: 
    print ('Who are you?') 
    name = input() 
    if name != 'Joe': 
     continue 
    print('Hello, Joe. What is the password? (It is a fish.)') 
    password = input() 
    if password == 'swordfish': 
     break 
    print('value') 
0

はPythonのIDLEは、コードだけの1つのブロックを一度に実行することを可能にするエスパスに追加するだけで必要な、10行目でundentationエラーを持っています。この例では、whileループは 'ブロック'です。最後のprint文はこのブロックの外側にあるため、実行できません。

関連する問題