2

私はPythonが初めてです。

私はオンラインでチュートリアルを読んでいましたが、著者は を使用str = input()し、文を入力しました。その後、str に格納されている入力文字列を取得します。ただし、str = input()Python シェルで試してみたところ、機能しません。エラーは次のとおりです。

>>> a = input()
test sentence

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    a = input()
  File "<string>", line 1
    test sentence
            ^
SyntaxError: unexpected EOF while parsing

なぜそうなのか教えていただけますか?

4

4 に答える 4

4

inputPython 2 と Python 3で の意味が変わりました。Python 2 では、input入力した内容を実際に Python コードとして評価していました。したがって、Python で構文的に正しくないものを入力すると、このようなエラーが発生します。さらに、raw_input入力が何であれ、それを文字列で返すだけのものがあります。

評価inputは実際にはそれほど有用ではない (そして eval は悪である) ため、の動作はPython 3 でinputPython 2 のものに置き換えられましたraw_input

チュートリアルの作成者は、Python 2 のinputように動作するPython 3 を使用した可能性が最も高いです。Python 2 を使用している場合は、代わりに使用してください。raw_inputraw_input

于 2013-03-14T00:15:43.867 に答える
2

a = input() test sentenceは有効なコードではありません。

あなたは文字でコメントを書くことができます#

編集:どのバージョンのPythonを使用していますか?raw_inputの代わりに試してくださいinput

inputraw_inputPython2の違い:

raw_input:ユーザーが改行で書き込んだものをすべて読み取り、それをに保存しますstr

input:ユーザーが書いたものをすべて読み取りその入力を評価します

raw_inputinputPython3になりました。

于 2013-03-14T00:10:03.657 に答える
1

Python 2 では、raw_input(...)入力されたものを文字列として返します。は(非常に危険!!input(...) ) に相当します。はその引数を Python コードとして評価し、結果を返すため、適切にフォーマットされた Python コードが必要です。セキュリティ上のリスクがあるため、Python 2 では決して使用しないでください。代わりに使用します。eval(raw_input(...))evalinputinputevalraw_input

Python 3 では、input(...)入力されたものを文字列として返します。

于 2013-03-14T00:16:52.320 に答える
1

を使用しているためinput()、有効な Python コードが必要です。は有効な Python ではありませSyntaxErrorん。test sentence

したがって、raw_input()(文字列を返す)またはこれを使用してみてください:

>>> a = input()
'test sentence' # by entering it as a string, it is evaluable

参考文献:

于 2013-03-14T00:14:01.873 に答える