关于python:`input`和`raw_input`之间的差异

Differences between `input` and `raw_input`

本问题已经有最佳答案,请猛点这里访问。

在一个教程中,我看到了inputraw_input之间的区别。我发现它们改变了Python3.0中这些函数的行为。新的行为是什么?

为什么在python控制台解释器中

1
x = input()

发送一个错误,但如果我将它放入file.py并运行它,它不会?


Python中的字符串raw_input()2.0,收益和input()evaluates输入执行上下文中它被称为

1
2
3
4
5
6
>>> x = input()
"hello"
>>> y = input()
x +" world"
>>> y
'hello world'

Python 3.x中,input已报废的函数中的一个inputraw_input现在。你必须手动呼叫compileeval如果你要比老的功能。

1
2
3
4
python2.x                    python3.x

raw_input()   --------------> input()              
input()  -------------------> eval(input())

在3.x以上的会话,会像这样

1
2
3
4
5
6
7
>>> x = eval(input())
'hello'
>>> y = eval(input())
x + ' world'
>>> y
'hello world'
>>>

你可能要为一个错误的翻译,因为在你在你的报价没有不把输入。这是因为它的评估是必要的。你在哪里得到这个错误的名字吗?


它的简单:

  • raw_input()返回字符串值
  • input()返回整型值
  • 例如:

    1。

    1
    2
    x = raw_input("Enter some value =")
    print x

    输出:

    1
    2
    Enter some value = 123
    '123'

    2。

    1
    2
    y = input("Enter some value =")
    print y

    输出:

    1
    2
    Enter some value = 123
    123

    因此,如果我们执行x + x =它将输出的123123

    而如果我们将进行它的输出y + y =246


    输入输入的原始_()和()

    输入的原始_ collects人物介绍他们的用户类型和字符串。输入(T)不及时治疗,而评估数的代码输入到tries Python和运行它。但恶意用户可以对知识型的Python命令,可以删除该文件。对输入的原始_(棒)和数据类型转换为字符串,你需要使用Python的内置转换功能。

    (输入),也不是一个错误,从用户的安全。它的有效表达expects Python的输入;如果输入的是不syntactically有效,查询将被提出。