我很清楚这是一个无足轻重的问题,但我似乎找不到解决方案,我对编程很陌生,但渴望学习。我在python中浏览第一个google clas,这是我得到的错误。在
def both_ends(s):
print s[0:2], s[3:5]
return
x = input('...: ')
both_ends(x)
sergei@sergei-MS-7253:~/Desktop/p2$ python test2.py
...: haloj
Traceback (most recent call last):
File "test2.py", line 10, in <module>
x = input('...: ')
File "<string>", line 1, in <module>
NameError: name 'haloj' is not defined
请解释一下是什么问题。在
谢谢你
尝试
raw_input
而不是input
。在为了扩展,您可能正在阅读一个教程,该教程假定您使用的是python3.x,并且您可能正在使用python2.x。在python2.x中,
input
实际上计算它得到的文本,这意味着它认为haloj
是一个变量名;因此NameError
。在python3.x中,input
只是以字符串形式返回文本。在另一个选择是输入
'haloj'
,而不是haloj
。(注意添加的引号。)在python2中,input()接受一个应该立即执行的字符串。如果要将给定的输入保存为字符串(您的意图),请使用raw_input()。在
为此,您应该使用}。当您使用
raw_input()
,而不是{input()
时,python实际上正在执行一个eval(raw_input())
-因此它试图对您输入的内容调用eval。当您输入'haloj'时,python会查找一个名为haloj
的变量,当然,这个变量并不存在。在相关问题 更多 >
编程相关推荐