Learning Python(10)--input与raw_input

raw_input与input都是Python2.x的内建函数,通过读取控制台输入实现与用户的交互.但是,在Python3.x中,删除了raw_input函数.

Python2.x

raw_input:无论用户输入的是什么,raw_input函数都会自动将输入自动转换为str类型.即raw_input可以直接接收用户任何类型的输入.

>>>a = raw_input()
abc
>>>a
'abc'
>>>b = raw_input()
3
>>>b
'3'

input:input函数在接收一个字符串为输入时,必须将字符串用’ ‘或” “括起来,否子就会引发错误.另外,input可以接收纯数字作为输入,类型即为用户输入的数字的类型,int或者float等.

>>>a = input()
liyuan
Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "<string>", line 1, in <module>NameError: name 'liyuan' is not defined
>>>a = input()
'liyuan'
>>>a,type(a)
('liyuan',type 'str')
>>>b = input()
100
>>>b,type(b)
(100,type 'int')

值得注意的是,input函数还可以接收Python任何合法的表达式作为输入.

>>> a = input()
100
>>> b = input()
3
>>> c = input()
a+b
>>> c
103
>>> d =input()
34+1
>>> d
35

查看 Built-in Functions ,得知:

input([prompt])

    Equivalent to eval(raw_input(prompt)) 

input() 本质上还是使用 raw_input() 来实现的,只是调用完 raw_input() 之后再调用 eval() 函数,所以,你甚至可以将表达式作为 input() 的参数,并且它会计算表达式的值并返回它。

不过在 Built-in Functions 里有一句话是这样写的:Consider using the raw_input() function for general input from users.

除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。

Python3.x

Python3.x中取消了raw_input函数,但并不代表删除了他的功能.相反,Python3.x中input函数代替了raw_input实现了它原有的功能,即无论用户的输入为什么,它都会将输入转换为str类型.

在Python3.x与2.x区别的官方文档中写到:

PEP 3111: raw_input() was renamed to input(). That is, the new input() function reads a line from sys.stdin and returns it with the trailing newline stripped. It raises EOFError if the input is terminated prematurely. To get the old behavior of input(), use eval(input()).

若想实现Python2.x中input函数的功能,可以使用eval(input()).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值