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

虽然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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值