虽然python中提供了很清晰的错误信息,但有时候还是很难判断错误在哪,并且这个错误看起来太简单,又不能baidu(如果你是个初学者)如:
>>> name = input()
slg
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'slg' is not defined
此处你能给在baidu中搜索“NameError: name ‘slg’ is not defined”这个错误吗?肯定会是一大堆不相关的解释
Python2
raw_input和input的区别:
raw_input获取到的输入永远都是str类型的
In [6]: name = raw_input()
123
In [7]: type(name)
Out[7]: str
input获取到的输入会自动判断其类型,如果是没有引号的英文字符会被判断为变量,会在全文中找对应的变量。如果是带引号的字符串,便会以字符串的形式输出
In [8]: score = input()
123
In [9]: type(score)
Out[9]: int
In [10]: score = input()
slg
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-10-d2075f006af4> in <module>()
----> 1 score = input()
<string> in <module>()
NameError: name 'slg' is not defined
修改如下即可:
In [15]: slg = 'abc'
In [16]: score = input()
slg
In [17]: type(score)
Out[17]: str
或
In [11]: score = input()
'slg'
In [12]: type(score)
Out[12]: str
Python3
python3将raw_input和input进行了整合,只有input