美文网首页
Python2和Python3的区别

Python2和Python3的区别

作者: 飞跑的蛤蟆 | 来源:发表于2020-05-15 17:19 被阅读0次

编码方式

编码

python2的默认编码是ascii,所以会导致经常会遇到编码问题文件中经常会写# coding=utf-8

python3默认采用utf-8作为默认编码。

字符串

在python2中,字符串有两个类型,一个是unicode(文本字符串),一个是str(字节序列)。

在python3中,两者做了严格的区分,分别用str表示字符串,byte表示字节序列,任何需要写入文本或者网络传输的数据都只接收字节序列。

image.png

内置函数

print

在python2中print是一条语句(作为一个整体),python3中则是一个函数(作为参数)。

示例:

# python2
print("He", "is", "a", "boy!")
>>> ('He', 'is', "a", 'boy!')

# python3
print("He", "is", "a", "boy!")
>>> He is a boy!

如果在python2中想要把print当函数使用,可以导入future模块中的print_function

from __future__ import print_function
print("He", "is", "a", "boy!")
>>> He is a boy!

数据类型

long整型被废弃,统一改写成int类型代替。不等于只有!=,废弃<>

python2中很多返回列表对象的内置函数和方法在python3中都返回的是迭代器,因为迭代器的惰性加载机制使得操作大数据时更有效率,有的也可以使用list强制转换(dictionary关联的keys,values,items方法都不再返回列表,而是返回一个类似迭代器的view对象;高阶函数zip, map, filter也不再返回列表对象了)

True和False在python2中是两个全局变量,在数值上分别对应1和0,既然是变量,那么就可以被赋值。

True = False
True
>>> False

而在python3中,True和False变为两个关键字,永远指向两个固定的对象,不允许再赋值。

True = 1
>>>  File "<stdin>", line 1
SyntaxError: can't assign to keyword

参考
简书:python2和python3的区别

相关文章

网友评论

      本文标题:Python2和Python3的区别

      本文链接:https://www.haomeiwen.com/subject/kbfhohtx.html