1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi')
Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如 print 'hi'
2、Python2 range(1,10)返回列表,Python3中返回迭代器,节约内存
3、Python2 中使用ascii编码,Python3中使用utf-8编码
4、Python2 中unicode表示字符串序列,str表示字节序列
Python3 中str表示字符串序列,byte表示字节序列
5、Python2 中为正常显示中文,引入coding声明,Python3中不需要
6、Python2 中是raw_input()函数,Python3中是input()函数
7、Python2 导入同级目录下的模块无需 . Python3导入同级目录下的模块需要加上 .
| python2 | python3 |
| 1. 编码方面 | |
|
ASCII编码 -- str类型 Unicode编码 -- Unicode类型
|
Unicode编码 -- str类型 非Unicode编码 -- 字节类型: bytes & bytearrays |
|
python2创建的字符串根据操作系统而定, Linux下为 utf-8, 简体中文Windows下为 GBK, ipython2默认为 utf-8
|
python3&ipython3创建的字符串为: Unicode编码 -- str类型 的字符串, 源码文件默认为utf-8 |
| 2. 语法方面 | |
|
除法运算 / , 整数运算时会把小数部分完全忽略掉, 浮点数运算时会保留一位小数.
|
进行整数运算时, 结果仍为浮点数 |
|
xrange 返回一个生成器, 需生成较大的数字序列时, xrange性能更优.
|
range 生成一个list对象 |
|
zip()函数返回列表
|
zip()函数返回迭代器 |
|
不等运算符包括: != 和 <>
|
仅包含 != |
|
反引号 `` & repr函数
|
仅允许使用 repr函数 |
|
exec 语句
|
exec() 函数 |
|
print 语句
|
print() 函数 |
|
a. 异常捕获的语法 : except exc, var b. 所有异常类型的对象都是可以被直接抛出的 c. raise语句使用了逗号 将抛出对象类型和参数分开 |
a. 使用 as 作为关键字 : except exc as var b. 只有继承自 BaseException 的对象才可以被抛出 c. 不再使用此种写法 |
|
添加关键字 : as with True False None , 添加 nonlocal语句 引入抽象基类(Abstraact Base Classes, ABCs) 容器类和迭代类被ABCs化, cellections 模块新增多个类型 |
|
| 3. 模块改名 | |
| _winreg | winreg |
| ConfigParser | configparser |
| Queue | queue |
| copy_reg | copyreg |
| SocketServer | socketserver |
| repr | reprlib |
| new, md5, gopherlib等模块被删除 | |
| 4. 数据类型 | |
| 存在 long类型, 不存在 bytes类型 | 去除 long类型, 新增 bytes类型 |
| 存在 iterkeys()等函数 | dict的.keys()、.items 和.values()方法返回迭代器, 去除 dict.has_key() , 使用 in代替 |
| 5. 输入输出 | |
| raw_input("提示信息") 得到是 str类型 , input("提示信息") 得到是 int类型 | input("提示信息") 统一得到是 str类型 |
| file( ... ) open( ... ) 打开文件 | 仅能使用 open( ... ) 或加上with |
| map()内置函数 & filter()内置函数 : <built-in function filter>, 返回列表 | map类 & filter类 : <filter object at 0x10d8bd3c8>, 返回可迭代对象 |
posted on
浙公网安备 33010602011771号