5

わかりましたので、私は多くの入力コマンドを使用しており、Python2 でできることを理解しました:

text = raw_input ('Text here')

しかし、Python 3を使用するようになったので、次の違いは何だろうと思っていました:

text = input('Text here')

と:

text = eval(input('Text here'))

どちらか一方をいつ使用する必要がありますか?

4

2 に答える 2

8

Python 3.x では にraw_inputなりinput、Python 2.x ではinput削除されました。したがって、3.x でこれを行うと、次のようになります。

text = input('Text here')

あなたは基本的に2.xでこれをやっています:

text = raw_input('Text here')

3.xでこれを行う:

text = eval(input('Text here'))

2.xでこれを行うのと同じです:

text = input('Text here')

Python Docs からの簡単な要約を以下に示します。

PEP 3111:raw_input()に名前が変更されましたinput()。つまり、 newinput() 関数は から行を読み取りsys.stdin、末尾の改行を削除して返します。EOFError入力が途中で終了した場合に発生 します。の古い動作を取得するにはinput()、 を使用しますeval(input())

于 2013-09-26T18:46:37.857 に答える
2

これらは同等です:

raw_input('Text here')       # Python 2
input('Text here')           # Python 3

そして、これらは同等です:

input('Text here')           # Python 2
eval(raw_input('Text here')) # Python 2
eval(input('Text here'))     # Python 3

raw_input()Python 3の名前が変更されたinput()だけなので、Python 3 には という関数がないことに注意してくださいraw_input()。また、Python 3 には Python 2 の に直接相当するものはありませんが、次のinput()ように簡単にシミュレートできますeval(input('Text here'))

input('Text here')現在、Python 3 でのとの違いeval(input('Text here'))は、前者は入力された入力の文字列表現を返す (末尾の改行は削除されている) のに対して、後者は入力を、あたかも対話型インタープリターに直接入力された式であるかのように安全に評価しないことです。

于 2013-09-26T18:47:36.953 に答える