您的位置:首页 > 编程语言 > Python开发

python2.x里面的input()和raw_input()函数以及3.x中的input()函数的区别

2015-03-19 23:11 961 查看
在python3.0及以上的版本中,raw_input()函数已经和我们说再见了,但是呢,input()函数则很好地替代了消失了的raw_input()函数。而且现在的input()函数所返回的值都是

字符串,所以对于要有int,float等类型的数值必须进行强制的类型转换。下面让我对3.0的input()函数做个小总结:

>>> str=input("abc: ")

abc: 15

>>> str

'15' (虽然输入的是15,但返回的是字符15有木有)

>>> str=input("abc: ")

abc: 3+4

>>> str

'3+4' (在python2.x中,这是要返回7,在最新的版本中,情况就不是这样啦)

>>> str=input("abc: ")

abc: "3"+"4"

>>> str

'"3"+"4"' (注意显示的还是字符串啊)

>>> str=input("abc: ")

abc: "abc"

>>> str

'"abc"' (还是字符串)

>>> str=input("abc: ")

abc: abc

>>> str

'abc' (这里要注意下,是字符串‘abc'哦,记住)

>>>

说完了3.x的input()函数,接下来就是说说2.x系列里面的raw_input()函数和input()函数啦。为什么呢?因为啊,虽然现在python3.x版本都出来了,而且和python2.x有不同,但

是呢,现在很多程序都是用python2.x编写的。虽然3.x一定是未来发展的主流。但是,了解多一点还是很好的:

input()函数:

>>> str=input("input :")

input :"abc"

>>>str

‘"abc"’

>>> str=input("input :")

input :4

>>> str

4

>>> str=input("input :")

input :3+4

>>> str

7

>>> str=input("input :")

input :"3"+"4"

>>> str

'34'

>>>

Traceback (most recent call last):

File "<pyshell#8>", line 1, in <module>

str=input("input :")

File "<string>", line 1, in <module>

NameError: name 'abc' is not defined

编译器会说这是名字错误,因为在python2.x看来,abc并不是字符串,也不是数值。所以编译器就会傲娇地说,不好意思,who are u?

下面来说说raw_input()函数

>>> str=raw_input("input :")

input :123

>>> str

'123'

>>> str=raw_input("input :")

input :abc

>>> str

'abc'

>>> str=raw_input("input :")

input :"abc"

>>> str

'"abc"'

>>> str=raw_input("input :")

input :1+2

>>> str

'1+2'

>>> str=raw_input("input :")

input :"a"+"b"

>>> str

'"a"+"b"'

>>>

这里返回的都是字符串,所以啊,python3.x里面的input()函数其实就是以前2.x里面的raw_input()函数。大家记住啦。

最后,我总结下python2.x里面的raw_input()函数和input()函数的区别:

input()函数:对于输入的是int,float等数值,输出的还是相对应的int,float值。对于输入的是字符串,输出的还是字符串(其实这也就是网上有人说的对于input()函数输入要符

合python规范)。而且对于输入的3+4之类,python()还会自动整合为7。

raw_input()把任何用户输入都转换成字符串存储,在需要其它类型的数据时,调用相应的函数进行转换。

最后,在学习过程中难免会有错误,希望大家多多请教。谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: