python2 V.S. python3

默认编码方式

python2默认ascii编码,python3默认使用unicode(utf-8).

涉及中文,python2需在文件头出添加# -*- coding: utf-8 -*-  或在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:

  1. # encoding=utf8  
  2. import sys  
  3. reload(sys)  
  4. sys.setdefaultencoding('utf8')  

或在涉及到的每一个位置,s.decode(sys.getdefaltencoding()).encode('utf-8')

print

python3需要加括号。

整除

python2和python3都认为//是整除,不同的是 / ,3/2  python2是1,python3是1.5。    3./2  python2才是1.5.

迭代器

python2   xrange  ; python3  range

字典dict.keys() dict.values() dict.items()  python2返回列表,python3返回view对象,类似迭代器。

map filter 从函数变成了类,其返回结果从列表变成了可迭代对象

不等于运算符

python2 不等号可以是<>或!=;python3只有!=

数据类型:————

True和False

python2中True和Flase是两个全局变量,可被重新赋值;python3将其变为两个关键字,补个被赋值。

nonlocal

global可用于函数内部修改全局变量的值,而在嵌套函数中想要声明一个全局变量是没办法实现的,python3新增nonlocal关键字,实现了该功能。

解析用户输入

python2 input()只接受数字,raw_input()接受字符串,python3中只有input() ,接收字符串。

猜你喜欢

转载自www.cnblogs.com/yvlian/p/13201487.html