默认编码方式
python2默认ascii编码,python3默认使用unicode(utf-8).
涉及中文,python2需在文件头出添加# -*- coding: utf-8 -*- 或在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:
- # encoding=utf8
- import sys
- reload(sys)
- sys.setdefaultencoding('utf8')
或在涉及到的每一个位置,s.decode(sys.getdefaltencoding()).encode('utf-8')
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() ,接收字符串。