What's the difference between raw_input() and input() in python3.x?
python3.x中
区别在于Python3.x中不存在
在python 2中,
由于获得字符串几乎总是您想要的,所以Python3使用
Python 2:
raw_input() 精确地接受用户键入的内容,并将其作为字符串传递回来。input() 首先取raw_input() ,然后对其执行eval() 。
主要的区别在于,
raw_input() 被重命名为input() ,所以现在input() 返回准确的字符串。- 旧的
input() 被移除。
如果要使用旧的
在python 3中,不存在sven已经提到的
在python 2中,
例子:
1 2 3 4 5 6 7 8 | name = input("what is your name ?") what is your name ?harsha Traceback (most recent call last): File"<pyshell#0>", line 1, in <module> name = input("what is your name ?") File"<string>", line 1, in <module> NameError: name 'harsha' is not defined |
在上面的示例中,python 2.x试图将harsha作为变量而不是字符串来计算。为了避免这种情况,我们可以在输入内容周围使用双引号,如"harsha":
1 2 3 4 | >>> name = input("what is your name?") what is your name?"harsha" >>> print(name) harsha |
RWYIN()
raw_input()`函数不进行计算,它只读取您输入的内容。
例子:
1 2 3 4 | name = raw_input("what is your name ?") what is your name ?harsha >>> name 'harsha' |
例子:
1 2 3 4 5 6 7 8 | name = eval(raw_input("what is your name?")) what is your name?harsha Traceback (most recent call last): File"<pyshell#11>", line 1, in <module> name = eval(raw_input("what is your name?")) File"<string>", line 1, in <module> NameError: name 'harsha' is not defined |
在上面的示例中,我只是尝试使用
我想在每个人为python 2用户提供的解释中增加一点细节。
另一方面,
总之,对于python 2,也要输入一个字符串,需要像'
如果要确保代码与python2和python3一起运行,请在脚本中使用函数input(),并将其添加到脚本开头:
1 2 3 4 5 6 7 8 9 10 | from sys import version_info if version_info.major == 3: pass elif version_info.major == 2: try: input = raw_input except NameError: pass else: print ("Unknown python version - input function not safe") |
两者都是相同的,唯一的区别是在各自的Python版本中使用它们。
在Python 2:
raw_input():它精确地接受用户类型并将其作为字符串对象传递回来。
input():它精确地获取所使用的类型,然后转换输入对象的类型。例子。使用输入[10,20,30],然后它将作为列表对象类型返回。
在Python 3中:
input():与python2中的raw_input()完全相同。
eval(input()):与python2中的input()完全相同。