一、博客导语

虽然Python2早已停止维护,但新旧项目迁移、老代码维护面试中,Python2与Python3区别仍是高频提问。本文汇总面试最核心、最高频的区别点,整理标准化答题话术,简洁好记、适配面试答题。


二、核心语法区别(面试重点)

1、输出语句差异

Python2:print 是语句 print "hello"

Python3:print 是内置函数 print("hello")(必须加括号)

2、编码机制差异(最大底层区别)

Python2:默认编码ASCII,字符串分str(字节)、unicode,中文极易乱码

Python3:默认编码UTF-8,字符串统一为unicode,彻底解决中文乱码问题

3、整除运算差异

Python2:3/2=1 向下取整整除

Python3:3/2=1.5 浮点除法,整除使用 //

4、输入函数差异

Python2:input()、raw_input()

Python3:统一为input(),废弃raw_input()

5、xrange与range

Python2:range返回列表,xrange返回生成器(省内存)

Python3:统一range,原生为生成器特性,废弃xrange


三、数据与功能差异

1、迭代器特性

Python2:字典keys/values/items返回列表,占用内存

Python3:全部返回迭代器,惰性取值,节省内存

2、异常捕获语法

Python2:except Exception, e:

Python3:except Exception as e:(唯一规范写法)

3、类的继承

Python2:默认经典类,无继承object;需手动继承object新式类

Python3:所有类默认继承object,统一新式类


四、面试总结(万能答题模板)

Python3是Python2的优化升级版,核心改进:统一UTF-8编码解决乱码、规范语法格式、优化内存机制、统一内置函数、废弃冗余语法,兼容性不互通,Python2已停止维护,企业开发全面使用Python3。

更多推荐