Python2 和py3版本区别

Python2.x与3​​.x版本区别

Python 3.0在设计的时候没有考虑向下相容。
许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。
为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。
1. print 函数
python 2 中 :print语句
python 3 中 :print()函数
2. 除法(/和//)
python 2 中 :/除法相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
python 3 中 :/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。
对于//除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作,在python 2.x和python 3.x中是一致的。
3. 编码方式Unicode
python 2 中 :有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型
python 3 中 :在 Python 3源码文件默认使用utf-8编码,有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays。
以下代码在 python 3 是合法的:

中国 = 'china' 
print(中国) 
china

4.打开文件
python 2 中 : file( … )或 open(…)
python 3 中 :只有open(…)
5.获取输入函数
python 2 中 : raw_input()和input( ),两个函数都存在,其中区别为:
raw_input()—将所有输入作为字符串看待,返回字符串类型
input()-----只能接收"数字"的输入,在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型(int, float )
python 3 中 : raw_input()和input( )进行了整合,去除了raw_input(),仅保留了input()函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。
6.map、filter 和 reduce函数的不同
python 2 中 : 它们两者的类型是 built-in function(内置函数),它们输出的结果类型都是列表:

>>> map(lambda x:x *2, [1,2,3])
[2, 4, 6]
>>> filter(lambda x:x %2 ==0,range(10))
[0, 2, 4, 6, 8]

python 3 中 : 首先它们从函数变成了类,其次,它们的返回结果也从当初的列表成了一个可迭代的对象, 我们尝试用 next 函数来进行手工迭代:

>>> f =filter(lambda x:x %2 ==0, range(10))
>>> next(f)
0
>>> next(f)
2
>>> next(f)
4
>>> next(f)
6

7.数据类型
python 2 中 : 有long整型数据
python 3 中 : 去除了long类型,现在只有一种整型—int,以及新增了bytes类型,
8.不等运算符
python 2 中 : 不等于有两种写法 != 和 <>
python 3 中 : 不等于只有!=一种写法
9.for循环
python 2 中 : 用 xrange() 创建迭代对象
python 3 中 : 用 range() 创建迭代对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值