一代版本一代神,了解python2和python3之间的不同之处


2020年1月1日,python官方就发飙了声明不再维护python2的版本技术更新。但是由于大部分公司基于Python2开发的项目任然存在不少,项目直接的迁移成本比较高,因此有些公司会在技术社区之间付费购买维护服务的方式,让专业的技术团队继续针对性的维护python2.x版本的技术。在这样的情况下。我们在熟练掌握python3的条件下,也要知道Python2和Python3的区别,并掌握这些不同和使用方法。

(一)print

在python2中,print是一个输出语句
在python3中print是一个函数

# Python2,直接在后面接上要输出的信息就行了
print "a", 12, True

# Python2
print("a", 12, True)

(二)range与xrange

range()在python2中会得到一个列表,在Python3中会得到一个range生成器

# Python2
>>>range(0,2)
[0,1,2]
# Python
range(0,2)
<class 'range'>

Python2中xrange(0,2)得到的是一个生成器,但是在Python3中改为了range(0,2)

(三)字符串

Python2中存储字符串是使用8bit字符串的存储方式,同时需要注意的是底层使用ASCII编码的方式,所以字符串会有两种不同格式的str和unicode
Python3中存储字符擦混,是使用16bit unicode字符串变长的存储方式。

(四)异常处理

异常处理区别的地方是起别名的语法有所不同
Python2中的异常处理语法:

try:
	...
except Exception, e:
	...

Python3中的异常处理语法:

try:
	...
except Exception as e:
	...

(五)打开文件的方式

Python2打开文件有多种方式
f = file(…)

# Python2
f = file("1.txt", "w")
f.write("hello world")
f.close()

f = open(…)
Python3打开文件只有一种方式
f = open(…)

(六)标准输入

Python2中支持两种标准输入

info = raw_input("提示消息")   # 输入什么数据全部转换为字符串
info = input("输入整数:")   # 输入什么就输出什么数据类型,输入字符串需要添加引号,否则就是一个变量

Python3只需要一种标准输入
info = input(“提示消息”)

(七)除法运算

Python2中,/表示的是整除,但是加上浮点数就是真实除法

print 5/2   # 输出2
print 5.0/2  # 输出2.5

Python3中,/表示真实的除法,//表示整除

(八)自定义类型

Python2中保留了原始的类型继承关系经典类,同时也支持继承object而衍生的新式类,所以在多继承操作过程中会出现两种不同的数据检索方式,让中大型项目的开发变得复杂和困难。
Python3中废弃了经典类,只保留了新式类,也就是现在我们通用的自定义类型,直接或者间接object。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值