python2和python3兼容吗-Python2和3兼容写法

Python现阶段在我看来什么都好,就一点被吐槽比较厉害:版本问题。

程序猿们经常纠结要用Python2还是Python3。连初学的时候也有这个抉择问题。

建议初学先学python2.7,现在很多库还是只支持这个版本。python3.5语法改动相对不大,容易迁移到python3.5。

而Python3.5有些很好用的特性,但有些库不支持3.5~

这就是问题所在。所以,我们用Python开发的时候,尽量写一些兼容Python2和Python3的代码。

目前我总结了一些兼容写法。若你有不同的兼容写法,也一起讨论学习一下吧 ^_^

1、输出print函数

Python2.7 print写法常见有以下两种print "1+1=%s" % 2

print "1+1=", 2

Python3.5 print写法也有两种print("1+1=%s" % 2)

print("1+1", 2)

可以看出形式一样,就是函数的使用方法不同,Python2.7可以不用括号,而Python3.5一定要用括号。

兼容写法:print("1+1=%s" % 2)

print("1+1", 2)

2、输入函数

Python2.7输入函数有两个raw_input("say something:")

input("say something:")

Python3.5输入函数只有一个input("say something:")

可以看出Python3.5不支持raw_input了。在使用输入函数的时候,尽量用input方法。但input方法时,不输入任何字符就直接回车,会报错。所以这里根据具体情况需要,做一定错误处理。

兼容写法:try:

input("say something:")

except:

print("you input anything")

3、除法

除法是Python2和3区别最大的地方。若除数和被除数都是正常,在Python2.7是地板除(结果没有小数);在Python3.5这是我们正常认知的除法。

为了更好的兼容,确定结果是要整数还是小数,可以如下处理:#确定要得到整数,加一个int函数

int(3/2)

#确定要得到小数,加一个小数点或用float函数

3/2.

3/float(2)

4、错误处理

错误处理也是比较有意思的地方。Python3不支持Python2的常见写法。

例如,Python2.7:try:

a = 1/0

except Exception, e:

print(e.message)

Python3.5得写成:try:

a = 1/0

except Exception as e:

print(e.message)

Python2.7也是支持as这种写法,所以兼容写法用Python3.5的写法即可。

另外raise抛出错误也是要注意一下。

Python2.7有两种写法:raise Exception, "[error]test"

raise Exception("[error]test")

Python3.5只支持第二种写法,若要兼容写法用第二种:raise Exception("[error]test")

4、库引用处理

库引用这个没有很好的兼容写法,因为不一定可以找到对应的兼容库。大部分时候只能用错误处理方法,处理一下:try:

import unrar #随便拿个库举例

except:

pass #跳过,或者使用其他方法

通过上面的内容,可以看出Python3对语法做出一定规范性的调整,去掉一些冗余的语法。当然,你也可以不用在意。再过几年,Python2.7会慢慢淘汰,全面升级到3或者4。

若对你有帮助,不妨扫一扫右侧的二维码打赏支持我 ^_^

分享到:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值