用户在Python中输入后,"NameError:name''未定义"

Ser*_*pia 14 python

我完全迷失了为什么这不起作用.应该准确地工作吧?

UserName = input("Please enter your name: ")
print ("Hello Mr. " + UserName)
raw_input("<Press Enter to quit.>")
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

Traceback (most recent call last):  
  File "Test1.py", line 1, in <module>
    UserName = input("Please enter your name: ")
  File "<string>", line 1, in <module>
NameError: name 'k' is not defined  
Run Code Online (Sandbox Code Playgroud)

它说NameError 'k',因为我'k'在测试期间写了输入.我已经读过print语句曾经没有括号但是已被弃用了吗?

Ign*_*ams 13

不要input()在2.x中使用.请raw_input()改用.总是.

  • `input()`总是被打破.3.x"固定"它,但伤害需要很长时间才能愈合. (2认同)

gho*_*g74 12

在Python 2.x中,input()"评估"输入的内容.(请参阅参考资料help(input)).因此,当您键入时k,input()尝试查找是什么k.因为它没有定义,所以它引发了NameError异常.

raw_input()在Python 2.x中使用.在3.0x,input()是固定的.

如果你真的想使用input()(这是不可取的),那么引用你的k变量如下:

>>> UserName = input("Please enter your name: ")
Please enter your name: "k"
>>> print UserName
k
Run Code Online (Sandbox Code Playgroud)