わかりましたので、私は多くの入力コマンドを使用しており、Python2 でできることを理解しました:
text = raw_input ('Text here')
しかし、Python 3を使用するようになったので、次の違いは何だろうと思っていました:
text = input('Text here')
と:
text = eval(input('Text here'))
どちらか一方をいつ使用する必要がありますか?
わかりましたので、私は多くの入力コマンドを使用しており、Python2 でできることを理解しました:
text = raw_input ('Text here')
しかし、Python 3を使用するようになったので、次の違いは何だろうと思っていました:
text = input('Text here')
と:
text = eval(input('Text here'))
どちらか一方をいつ使用する必要がありますか?
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())
。
これらは同等です:
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'))
は、前者は入力された入力の文字列表現を返す (末尾の改行は削除されている) のに対して、後者は入力を、あたかも対話型インタープリターに直接入力された式であるかのように安全に評価しないことです。