python2和python3之间input()函数的重要区别

python2中的输入函数:

1.input()           #如果输入是一个数学计算式,会自动执行计算得出结果,并且会自动识别出输入的类型(str,int,float)

2.raw_input()    #完全默认为str类型

python3中的输入函数

1.input()           #完全默认为str类型

首先说一下python2中input()和python3中input()的区别:

python2:

区别1:input()函数会默认执行输入的表达式,如果你输入的是一个数学计算式的话,输入得到的就是一个结果,而不是一个字符串

比如:

Python 2.7.5 (default, Nov  6 2016, 00:28:07) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> str=input()
3+2
>>> str
5
>>> 

输入3+2字符串,输出的str是一个5

因为python2中会默认的执行这个表达式。

所以一般采用raw_input()就不会出现这个问题

>>> b=raw_input()
3+2
>>> b
'3+2'
>>> 

区别2:python2会自动识别类型,比如str,int,float,而python3中只会默认为str类型

[root@iz4my821dmhjx7z Test]# more type.py 
a=input("input a number:")
print(a)
print(type(a))

python2 type.py //会识别出输入的是int类型

[root@iz4my821dmhjx7z Test]# python2 type.py 
input a number:123
123
<type 'int'>
[root@iz4my821dmhjx7z Test]# 

python3 type.py //默认输入的都是str类型

[root@iz4my821dmhjx7z Test]# python3 type.py 
input a number:123
123
<class 'str'>
[root@iz4my821dmhjx7z Test]# 

猜你喜欢

转载自blog.csdn.net/weixin_40327259/article/details/80721975