Differences between input commands in Python 2.x and 3.x

前端 未结 2 552
误落风尘
误落风尘 2020-12-07 02:40

Ok, so i use a lot of input commands, and I understood that in Python2 I can do:

text = raw_input (\'Text here\')

But now that i use Python

2条回答
  •  长情又很酷
    2020-12-07 03:15

    These are equivalent:

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

    And these are equivalent:

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

    Notice that in Python 3 there isn't a function called raw_input(), as Python's 3 input() is just raw_input() renamed. And in Python 3 there isn't a direct equivalent of Python 2's input(), but it can be easily simulated like this: eval(input('Text here')).

    Now, in Python 3 the difference between input('Text here') and eval(input('Text here')) is that the former returns the string representation of the input entered (with trailing newline removed), whereas the latter unsafely evaluates the input, as if it were an expression entered directly in the interactive interpreter.

提交回复
热议问题