【python2.7】raw_input()和input()区别及用法

一、函数介绍
1. input([prompt])

等同于eval(raw_input([prompt])),这个函数不会捕捉用户输入上的错误,如果语法校验不通过会引发SyntaxError。在eval函数执行过程中也会跑出其他的异常。

在eval函数执行过程中也会抛出其他的异常;

还有一段相关于python readline()的解释,暂时没懂,o(╯□╰)o。

推荐接受用户输入的时候使用raw_input()


2. raw_input([prompt])

如果传了prompt参数,它会直接输出到屏幕上而不用再往下另起一行,如:

从输入中读取一行,将其转换成string类型,然后返回。当碰到EOF,会引发EOFerror。


二、相同点&区别

1. 相同点

都能接受字符串、表达式作为输入。

>> raw_input(1>0)
True
>>> raw_input("input:")
input:


2. 区别

通过简介,二者的区别其实已经很清楚了:

a. 原理上input()是一个特殊的raw_input(),只是外层调用了eval()函数而已;

b. input()接受输入并计算,如果输入为字符串,进行到eval()处理的时候会将刚才输入的字符串当成是一个变量,请看:

>>> a = 1
>>> input()
a
1

我输入的字符串是a,而最后input()给我返回的是a的值,即为1

然而,raw_input()接受输入转换成string返回。

看看下面几个列子:

# 输入纯字符串
>> input()
iaminput
Traceback (most recent call last):
  	File "<stdin>", line 1, in <module>
  	File "<string>", line 1, in <module>
NameError: name 'iaminput' is not defined
>>> raw_input()
iaminput
'iaminput'

# 输入表达式
>>> a = input()
1+1
>>> print a,type(a)
2 <type 'int'>
>>> b = raw_input()
1+1
>>> print b,type(b)
1+1 <type 'str'>

三、总结

总之,尽量使用raw_input()以避免一些不必要的事情发生。



  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值