由于Python 2的raw_input
已经改为Python {3 {1}},我想知道在考虑Python 2和3时是否有办法获取输入。我正在尝试写两个版本的脚本,这个输入部分是唯一不能正常工作的部分。
我尝试用Py2运行input
,这种情况发生了:
input
我看到了一个引用输入的解决方法:
>>> a = input('Input: ')
inp: test
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
a = input('Input: ')
File "<string>", line 1, in <module>
NameError: name 'test' is not defined
有没有办法将引用连接到输入的开头和结尾? >>> a = input('Input: ')
inp: "testing test"
a
'testing test'
无效
答案 0 :(得分:2)
可能不是一个好习惯,但您可以使用try
块来测试raw_input()
是否被识别(从而告诉您是否在Python 2.x或Python 3上) .X):
try:
a = raw_input('input: ')
except NameError:
a = input('input: ')
我会使用raw_input()
进行测试,因为它不被Python 3.x接受并且是您希望在Python 2.x中使用的,因此input()
不会触发Python 2.x。
我不是专家,所以我确信有更好的建议。
@ Chris_Rands&#39; suggested dupe thread通过绑定input = raw_input
提供更优雅的解决方案,因此,如果您有多个input()
,则只需try
一次。
答案 1 :(得分:-1)
这适用于Python 2和3.
from builtins import input
input("Type something safe please: ")