本文实例讲述了Python2 与Python3的版本区别。分享给大家供大家参考,具体如下:
现在还有些开源模块还没有更新到python3 ,不了解版本区别,无法对不合适的地方进行更改。
由于只追求向Python3靠近,所以对于python2的特别用法不探究。
此文不补全所有版本区别,仅作档案记录我遇到的版本区别.
print函数:
在 Python 2 中, print 被视为一个语句而不是一个函数
更改:
Python 2中的print语句== Python 3中的print()函数
input():
python2的raw_input()更新为Python 3 中的input()
整数除法:
更新:
由py2中的舍去小数的除法==》py3中的计算比较精确的除法
如果py3中想要不保留小数,使用 // 运算符
但要注意小数中//运算符的使用,//是返回比实际的商要小的数。
Unicode编码:
- 1.Python 2中的字符串基于ASCII
- 2.Python 3 默认使用 Unicode,Python3中的字符串类型默认是unicode类型的,另外新增了两个字节类:bytes和bytearrays
- Byte的使用:
- str对象转换成bytes对象可以使用encode()
- bytes对象转换成str对象使用decode()
- Python中对bytes类型的数据带
b
前缀的单引号或双引号表示:
- 由于编码变化还导致了python中网络编程函数使用的变化,网络传输都是字节流的,Python2的网络传输默认是字节型的,而python3中字符串是Unicode的,所以python3要对数据进行编码再传输。
不等运算符
Python 2.x中不等于有两种写法 != 和 <
Python 3.x中去掉了< , 只有!=一种写法
现在仍有一些教程保留着< 的用法!
处理异常:
捕获异常的语法由 except exception, variable 改为 except exception as variable
python3中将一些异常细化了,新增了不少异常
抛出异常:
更新:
py3使用构造函数抛出异常
代码语言:javascript复制raise 异常名, "自定义的异常信息"
代码语言:javascript复制raise 异常名("自定义的异常信息")
生成器的迭代:
python2中支持 生成器.next()
更新为
python3中的next(生成器),生成器.__next__()
关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。