python3和python2的区别

文章目录

      • 区别
        • 'start_new_thread' 不可调用

Python 2 和 Python 3 是 Python 语言发展史上的两个主要版本。Python 2 已于 2020 年 1 月 1 日正式停止维护(EOL),不再接收安全更新或功能修复。目前所有的新项目都应使用 Python 3(推荐)

为什么记录这个呢?因为实际遇到有些报错,就是因为使用了老版本的代码,记录下便于快速定位。

区别

特性Python 2 (已废弃)Python 3 (当前标准)影响程度
打印语句print "Hello"(语句)print("Hello")(函数)⭐⭐⭐ (语法错误)
整数除法5 / 2 = 2(向下取整)5 / 2 = 2.5(浮点除法)⭐⭐⭐ (逻辑错误)
字符串编码str是 ASCII 字节串str是 Unicode 文本,bytes是字节⭐⭐⭐ (乱码/崩溃)
输入函数input()执行代码,raw_input()读字符串input()读字符串,raw_input()已移除⭐⭐ (安全/逻辑)
范围生成range()返回列表,xrange()返回迭代器range()返回迭代器,xrange()已移除⭐ (性能)
异常处理except Exception, e:except Exception as e:⭐⭐ (语法错误)
迭代器.next()方法__next__()方法 /next()函数⭐ (兼容性)
类型检查type(1) is int(有时需小心)类型体系更清晰,int统一了long
元类语法__metaclass__属性class MyClass(metaclass=MyMeta):
‘start_new_thread’ 不可调用

也是版本问题,start_new_thread是python2的。