input() and input() in python3.x?
python3.x中raw_input()
和input()
之间有什么区别?
The difference is that raw_input()
does not exist in Python 3.x, while input()
does. Actually, the old raw_input()
has been renamed to input()
, and the old input()
is gone, but can easily be simulated by using eval(input())
. (Remember that eval()
is evil, so if try to use safer ways of parsing your input if possible.)
In Python 2 , raw_input()
returns a string, and input()
tries to run the input as a Python expression.
Since getting a string was almost always what you wanted, Python 3 does that with input()
. As Sven says, if you ever want the old behaviour, eval(input())
works.
Python 2:
raw_input()
takes exactly what the user typed and passes it back as a string.
input()
first takes the raw_input()
and then performs an eval()
on it as well.
The main difference is that input()
expects a syntactically correct python statement where raw_input()
does not.
Python 3:
raw_input()
was renamed to input()
so now input()
returns the exact string. input()
was removed. If you want to use the old input()
, meaning you need to evaluate a user input as a python statement, you have to do it manually by using eval(input())
.
上一篇: 在cmd.Cmd中完成时,sys.stdout已被替换
下一篇: 输入()和输入()在python3.x?