python2&python3

 

python2 python3
1. 编码方面  
 ASCII编码  -- str类型            Unicode编码  --  Unicode类型  Unicode编码  --  str类型      非Unicode编码  --  字节类型: bytes & bytearrays 
python2创建的字符串根据操作系统而定,  Linux下为 utf-8,  简体中文Windows下为 GBK,  ipython2默认为 utf-8 python3&ipython3创建的字符串为: Unicode编码 -- str类型 的字符串,  源码文件默认为utf-8
   
   
2. 语法方面  
 除法运算 /  ,  整数运算时会把小数部分完全忽略掉,  浮点数运算时会保留一位小数.  进行整数运算时,  结果仍为浮点数
xrange 返回一个生成器, 需生成较大的数字序列时, xrange性能更优. range 生成一个list对象
zip()函数返回列表 zip()函数返回迭代器
 不等运算符包括: != 和 <>  仅包含 !=
 反引号  `` &  repr函数  仅允许使用 repr函数
exec 语句 exec() 函数
print 语句 print()  函数

a. 异常捕获的语法 :  except exc, var    

b. 所有异常类型的对象都是可以被直接抛出的

c. raise语句使用了逗号 将抛出对象类型和参数分开

a. 使用 as 作为关键字 :  except exc as var

b. 只有继承自 BaseException 的对象才可以被抛出

c. 不再使用此种写法

 

添加关键字 : as  with  True  False  None  ,   添加 nonlocal语句

引入抽象基类(Abstraact Base Classes, ABCs)  容器类和迭代类被ABCs化, cellections 模块新增多个类型

   
3. 模块改名  
 _winreg  winreg
ConfigParser  configparser
Queue queue
copy_reg copyreg
SocketServer socketserver
repr reprlib
new, md5, gopherlib等模块被删除  
   
   
4. 数据类型  
存在 long类型, 不存在 bytes类型 去除 long类型,  新增 bytes类型
存在 iterkeys()等函数 dict的.keys()、.items 和.values()方法返回迭代器,  去除 dict.has_key() ,  使用 in代替
   
   
5. 输入输出  
raw_input("提示信息") 得到是 str类型 ,  input("提示信息") 得到是 int类型 input("提示信息") 统一得到是 str类型
file( ... )    open( ... )  打开文件 仅能使用  open( ... )  或加上with
map()内置函数 &  filter()内置函数  :  <built-in  function filter>,  返回列表 map类 & filter类  : <filter object at 0x10d8bd3c8>,  返回可迭代对象
   
   


                   

猜你喜欢

转载自www.cnblogs.com/hsmwlyl/p/10608659.html