python2与python3区别
python2与python3区别
1、字符编码
python2默认ascii编码
python3默认utf-8编码
2、除法运算
python2 整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
在python3中 对于整数之间的相除,结果也会是浮点数
Python 2.x:
>>> 1 / 2 0 >>> 1.0 / 2.0 0.5
Python 3.x:
>>> 1/2 0.5
3、不等于运算符
Python 2.x中不等于有两种写法 != 和 <>
Python 3.x中去掉了<>, 只有!=一种写法
4、数据类型
Py3 去除了long类型,现在只有一种整型——int,但它的行为就像Py2版本的long
5、捕获异常
python2 捕获异常的语法: except Exception, e
python3 except Exception as e
6、unicode字符串
python2中有两种字符串类型:Unicode字符串和非Unicode字符串。Python3中只有一种类型:Unicode字符串。
python2有两个函数可以把对象强制转换成字符串:unicode()把对象转换成unicode字符串,还有str()把对象转换为非Unicode字符串。Python3只有一种字符串类型,unicode字符串,所以str()函数即可完成所有的功能。
7、print()和raw_print()
在python2中 raw_input( )和input( ),两个函数都存在,其中区别为:
- raw_input() 不管输入什么都返回字符串类型
- input() 只能接收"数字"的输入,它返回所输入的数字的类型(int, float )
在python3中 raw_input( )和input( )进行了整合,去除了raw_input(),仅保留了input()函数,用法与py2中的raw_input()一致
8、range和xrange
py2中range()直接生成列表(量大占内存死机),py3中只有range( )和py2中还有的xrang( )都只生成一个生成器
9、经典类与新式类
创建类时,py2分为经典类和新式类,新式类就是继承object的类,经典类是没有继承的类,而py3中全部是新式类,默认继承object
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!