Python 2上的输入错误?

时间:2018-01-04 21:28:27

标签: python python-3.x python-2.7

此代码在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

有人能帮我理解我做错了吗?

2 个答案:

答案 0 :(得分:0)

python2 input中的

称为raw_inputinput命令解析输入的任何内容为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?