`input`和`raw_input`之间的区别
在教程中,我读到了input和raw_input之间的区别。 我发现他们改变了Python 3.0中这些函数的行为。 什么是新的行为? 
为什么在python控制台解释这个
 x = input() 
发送一个错误,但如果我把它放在一个file.py并运行它,它不?
 在python 2.x中, raw_input()返回一个string, input()在它被调用的执行上下文中计算input 
 >>> x = input() "hello" >>> y = input() x + " world" >>> y 'hello world' 
 在python 3.x中, input已经被废弃,并且之前被称为raw_input的函数现在被input 。 所以如果你想要旧的function,你必须手动调用compile和than eval 。 
 python2.x python3.x raw_input() --------------> input() input() -------------------> eval(input()) 
在3.x中,上面的会话是这样的
 >>> x = eval(input()) 'hello' >>> y = eval(input()) x + ' world' >>> y 'hello world' >>> 
所以你可能会在解释器中出错,因为你并没有在input中加上引号。 这是必要的,因为它被评估。 哪里出现名称错误?
input()vs raw_input()
raw_input收集用户键入的字符并将它们呈现为string。 input()不只是计算数字,而是将任何input视为Python代码并尝试执行它。 知识渊博,但恶意用户可以input一个甚至可以删除文件的Python命令。 坚持raw_input(),并使用Python内置的转换函数将string转换为您需要的数据types。
还input(),不安全的用户错误! 它期望一个有效的Pythonexpression式作为input; 如果input不是语法有效的,则会引发SyntaxError。
这很简单:
-   raw_input()返回string值
-  而input()返回整数值
例如:
1。
 x = raw_input("Enter some value = ") print x 
输出:
 Enter some value = 123 '123' 
2。
 y = input("Enter some value = ") print y 
输出:
 Enter some value = 123 123 
 因此,如果我们执行x + x =它将以123123输出 
 而如果我们执行y + y =它将输出为246