python2和python3的区别
python2和python3的区别
核心区别 Python 2 示例 Python 3 示例 通俗解释 专业术语 1. 打印方式 print "Hello"
print("Hello")
Python 3必须加括号,像“按钮操作”;Python 2像“直接喊话”。 2. 除法规则 3 / 2 → 1
(切掉小数)3 / 2 → 1.5
,3 // 2 → 1
Python 3分得更精确,想取整用 //
;Python 2直接砍小数。区分真除法( /
)和地板除(//
)。3. 中文处理 print "你好"
可能乱码print("你好")
直接显示Python 3自带“全球语言包”,不用调编码;Python 2中文可能变火星文。 默认字符串为Unicode,解决编码问题。 4. 内存优化 range(1000)
生成列表(占内存)range(1000)
生成迭代器(按需计算)Python 3像“现吃现做”,省内存;Python 2像“提前备货”。 迭代器替代列表,内存高效。 5. 输入安全 input()
可能执行代码(如输入1+2→3
)input()
返回字符串(如输入1+2→"1+2"
)Python 3输入当文字处理;Python 2输入可能被当代码执行(危险!)。 Python 3的 input()
等效于Py2的raw_input
。6. 类与继承 class Dog:
(旧式类,功能有限)class Dog:
(默认新式类)Python 3的类“自带高级工具”(如属性管理);Python 2需手动加 object
。Python 3隐式继承 object
,支持高级特性。7. 字典顺序 {1:2, 3:4}
可能输出乱序{1:2, 3:4}
保持插入顺序(Python 3.7+)Python 3字典像“排队入场”,记住顺序;Python 2顺序随机。 字典内部结构优化,保留插入顺序。
Python 3和Python 2核心区别就三点
- 语法更规范:比如
3/2=1.5
(Python 2是1)。- 中文直接写:不用在文件开头加编码声明(# -*- coding: utf-8 -*-),代码里直接用中文不报错。
- 更安全好用:比如
input()
直接返回字符串(Python 2的input()
会执行代码,有风险),range()
也更省内存。