python2和python3的区别
参考链接:http://www.runoob.com/python/python-2x-3x.html
1.字符串类型不同
python2 |
python3 |
unicode 类型 str 字节类型 |
str 字符串类型 bytes 字节类型 |
2.源码上的区别
python2 |
python3 |
源码不规范。源码重复,混乱,冗余。 |
源码整合,优美,清晰,简单 |
python2 |
python3 |
input:输入什么类型,返回什么类型 raw_input:返回都是字符串 |
input:返回都是字符串 |
4.输出print
python2 |
python3 |
print+空格+'你好' |
print('你好') |
5.int类型
python2 |
python3 |
有 int 和 long两种类型 |
只有 int |
6.int整除
python2 |
python3 |
只能保留整数部分(加一行代码:?可以保留小数部分) |
能保留所有 |
7.range()
python2 |
python3 |
range 在内存中立即把所有的值都创建 xrange 不会在内存中立即创建,而是在循环时,边循环边创建 |
range 不会在内存中立即创建,而是边循环边创建 |
8.可迭代方法
python2 |
python3 |
没有__next__(),其他都有 |
__iter__,iter(),__next__,next() |
9.除法( / )
python2 |
python3 |
返回相应整数、浮点数 |
浮点数 |
10.继承
python2 |
python3 |
经典类 默认不继承object 新式类 手动继承object |
新式类 默认继承object |
11.编码
python2 |
python3 |
ascii |
utf-8 |
12.readlines和xreadlines
如果只是2个函数返回值有区别(一个返回list,一个返回生成器)
13.模块和包
python2 |
python3 |
文件夹/包中必须有_ _ init _ _.py |
不需要有_ _ init _ _.py(可有可无) |
14.字典
.keys/.values/.items
python2 |
python3 |
返回列表 |
返回迭代器,可以循环但不可以索引 |
15.map/filter
python2 |
python3 |
返回列表 |
返回迭代器,可以循环但不可以索引 |