python2.7过渡到python3.6时遇到的差异总结

1.Python3中print为一个函数,必须用括号括起来而Python2中print为class

print('hello')

2.python3将raw_input和input进行了整合,只有input,输入的为str

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

4.python3中没有了xrange,python3的range就是xrange,也就是说range()返回的不再是一个列表而是一个class,如果要得到列表需要list(),for i in range(3)照样可以这样使用

5.python3中字典类方法has_key()也不再支持,用运算符处理,eg:'abc' in dic
字典的items()和keys()返回的不再是一个列表而是一个class,需要用list()转换为list;

6.字符串编码
在Python2中,作为两种类型的字符序列,str与unicode需要转换,它们是这样转换的.
str——decode方法——》unicode——encode方法——》str

u'string'          

在python3中可以这样对应这转换,配合上面的图,也许会好理解一点。
byte——decode(解码)方法——》str——>encode(编码)方法——》byte 

b'string'    

原文地址:https://www.cnblogs.com/yy-cola/p/9430099.html