说说你知道的Python3和Python2之间的区别?

Python是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库的一门强类型的动态,可移植,可扩展,可嵌入的解释型编程语言

编码

Python2中字符的类型:

str:已经编码后的字节序列

unicode:编码前的文本字符

Python3中字符的类型:

str:编码过的unicode文本字符

bytes:编码前的字节序列

我们可以认为字符串有两种状态,即文本状态和字节(二进制)状态。Python2和Python3中的两种字符类型都分别对应这两种状态,然后相互之间进行编解码转化。编码就是将字符串转换成字节码,涉及到字符串的内部表示;解码就是将字节码转换为字符串,将比特位显示成字符。在Python2中,str和unicode都有encode和decode方法。但是不建议对str使用encode,对unicode使用decode,这是Python2设计上的缺陷。Python3则进行了优化,str只有一个encode方法将字符串转化为一个字节码,而且bytes也只有一个decode方法将字节码转化为一个文本字符串。

Python2中需要在文件头打上注释#coding:utf-8指定该程序使用的编码格式为UTF-8

print

Python2中的print是class

Python3中的print是函数

Python2的print声明已经被print()函数取代了,这意味着我们必须包装我们想打印在小括号中的对象。

所以我们输出格式为

print("") # py3print ""  # py2print("")1234复制代码类型:[python]

input

解析输入为str字符型

Python2:input解析输入为int型,raw_input解析输入为str类型

算术符

Python3中/表示真除,%表示取余,//结果取整;Python2中带上小数点/表示真除,%表示取余,//结果取整

xrange

Python2中使用xrange()来创建一个迭代器对象,使用range()创建一个list数组;

Python3中使用range()创建迭代器对象,移除了xrange()方法。

(0)

相关推荐