python2与python3的区别整理(持续更新中)
文章目录
- 宏观区别:
- python2
- python3
- 具体区别:
- 1. 编码
- 2. print
- 3. range() 与 xrange()
- 4. input() 与 raw_input()
宏观区别:
python2
源码不标准,混乱,重复代码太多
python3
统一标准,去除重复代码
具体区别:
1. 编码
Python2 默认编码方式是ascii
码
Python3 默认编码方式utf-8
例如执行如下代码:
print('你好,世界')
- 1
- 1
Python3 成功输出字符,而 Python2 报错
解决方式: 在py
文件的首行加入:
#-*- encoding:utf-8 -*-
1
1
2. print
Python2 中 print 输出内容时,可以写成
print(A)
,也可以写为print 'A'
Python3 中只能使用print(A)
例如:
3. range() 与 xrange()
Python2 中range([start,] stop[, step])
,根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个列表。xrange([start,] stop[, step])
与range()
用法相同,只不过返回的是一个生成器。
所以相对来说, xrange 比 range 性能优化很多,因为它不需要一下子开辟一块很大的内存,特别是数据量比较大的时候。
Python3 中取消 range() 的用法,而是将 xrange() 改名为 range(),返回一个可迭代对象 。
4. input() 与 raw_input()
Python2 中,raw_input() 将所有的输入作为字符串看待,返回字符串类型。 而 input() 则希望读取一个合法的 Python 表达式,即在输入字符串的时候需要用引号括起来,否则就会报错。
Python3 中,将 input() 去掉了,并将 raw_input 改名为 input()。若想使用 Python2 中的 input() 功能,则使用 eval(input())
,效果基本相同。
赞 (0)