今天写一些测试代码时,有一行:if input()=="q": break
这样的语句,输入一个值时,出现运行时错误:NameError: name 'q' is not defined
很困惑。google了一下,原来是python2.x的版本里,直接input([prompt]),会被解释成eval(raw_input(prompt)),直接用input()时,输入的内容会被认为是python命令。在python 3里就不会这样处理.
本文探讨了Python2.x与Python3中input函数的行为差异。在Python2.x中,input函数会尝试将输入作为Python表达式评估,而在Python3中则不会。这种差异可能导致在迁移代码时遇到意外的运行时错误。
今天写一些测试代码时,有一行:if input()=="q": break
这样的语句,输入一个值时,出现运行时错误:NameError: name 'q' is not defined
很困惑。google了一下,原来是python2.x的版本里,直接input([prompt]),会被解释成eval(raw_input(prompt)),直接用input()时,输入的内容会被认为是python命令。在python 3里就不会这样处理.

被折叠的 条评论
为什么被折叠?