1

私はPythonを学ぼうとしています。Pythonスクリプトを書くのはこれが初めてです。私がやろうとしているのは、入力として文字列を取り、それが「終了」でない場合はそれを出力することだけです。しかし、それはさまざまなエラーを示しています。

def main():
    while True:
        data = input('Please enter a string');
        if data == 'exit': 
            break
        else:
            print(data)

if __name__ == '__main__':
    main()

エラーは次のとおりです。初めて言った:

解析中の予期しない EOF

二度目はこう言った。

nameerror: 名前 'asd' が定義されていません

4

2 に答える 2

2

インデントが外れています。そのはず:

def main():
    while True:
        data = input('Please enter a string');
        if data == 'exit': 
            break
        else:
            print(data)

if __name__ == '__main__':
    main()

Python はインデントを非常に真剣に扱います (実際、それが if ステートメントや関数宣言などで何が起こるかを知る方法です)。

編集:

上記の私の投稿は、Python 3.x を使用した質問に向けたものです (結局のところ、それはあなたが付けたタグです)。3.x ではなく 2.x を使用しているため、関数は次のようになります。

def main():
    while True:
        # Use raw_input instead so input is not evaluated
        data = raw_input('Please enter a string');
        if data == 'exit': 
            break
        else:
            print data

if __name__ == '__main__':
    main()
于 2013-08-14T15:00:19.303 に答える
2

関数「input」は整数を想定しているため、エラーが発生します。raw_input を使用して、入力したテキストを復元します。

于 2013-08-14T15:06:59.613 に答える