Python2与Python3的区别(二):raw_input与input

来源:互联网 发布:中国地质大学 网络教育 编辑:程序博客网 时间:2024/05/21 22:25

虽然python中提供了很清晰的错误信息,但有时候还是很难判断错误在哪,并且这个错误看起来太简单,又不能baidu(如果你是个初学者)如:

>>> name = input()slgTraceback (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()123In [7]: type(name)Out[7]: str

input获取到的输入会自动判断其类型,如果是没有引号的英文字符会被判断为变量,会在全文中找对应的变量。如果是带引号的字符串,便会以字符串的形式输出

In [8]: score = input()123In [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()slgIn [17]: type(score)Out[17]: str

In [11]: score = input()'slg'In [12]: type(score)Out[12]: str

Python3

python3将raw_input和input进行了整合,只有input

类似此文【Python2与Python3的区别(一):urllib和urllib2与urllib】

0 0
原创粉丝点击