此代码在Python 3上完美运行,但在Python 2上不起作用。这是我的代码:
while True:
userCommand = input("> ").lower()
if userCommand == "help" or userCommand == "?":
print("not yet...")
else:
print("Command not recognised.")
这是我在输入“帮助”时遇到的错误:
Traceback (most recent call last):
File "customCLI.py", line 2, in <module>
userCommand = input("> ").lower()
AttributeError: '_Helper' object has no attribute 'lower'
当我输入不同的内容时,我又收到了另一个错误:
Traceback (most recent call last):
File "customCLI.py", line 2, in <module>
userCommand = input("> ").lower()
File "<string>", line 1, in <module>
NameError: name 'blahblah' is not defined
有人能帮我理解我做错了吗?
答案 0 :(得分:0)
input
中的称为raw_input
,input
命令解析输入的任何内容为python代码。
你可以像这样破解它:
try:
input = raw_input
except NameError:
pass
答案 1 :(得分:0)
我的第一次尝试就是这个(适用于Python 2.x):
while True:
userCommand = raw_input("> ").lower()
if userCommand == "help" or userCommand == "?":
print("not yet...")
else:
print("Command not recognised.")
在Python 2.x中,input()将输入计算为python代码。 在Python 3.x中,它在Python 2.x中表现为raw_input(),它将输入作为字符串返回。 你可以在这里找到更多相关信息: What's the difference between raw_input() and input() in python3.x?