说说你知道的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
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()方法。