python2&python3

本文详细对比了Python2与Python3的主要区别,包括编码方式、语法特性、模块名称变动、数据类型调整及输入输出方面的变化。对于从Python2升级到Python3的开发者来说,这些内容是重要的参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi')

   Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如 print 'hi'

2、Python2  range(1,10)返回列表,Python3中返回迭代器,节约内存

3、Python2 中使用ascii编码,Python3中使用utf-8编码

4、Python2 unicode表示字符串序列,str表示字节序列

      Python3 str表示字符串序列,byte表示字节序列

5、Python2 中为正常显示中文,引入coding声明,Python3中不需要

6、Python2 中是raw_input()函数,Python3中是input()函数

7、Python2 导入同级目录下的模块无需  Python3导入同级目录下的模块需要加上 .

 

 

python2python3
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
Queuequeue
copy_regcopyreg
SocketServersocketserver
reprreprlib
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>,  返回可迭代对象
  


                   

 

转载于:https://www.cnblogs.com/hsmwlyl/p/10608659.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值