python版本分类及区别_python2.x和python3.x的版本区别

Python 3.x 版本相对于Python的早期版本,是一个较大的升级;许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。

Python 3.0 的变化主要体现在以下几个方面:

1. print()函数

Python 2 中的print语句没有了,取而代之的是print()函数

在Python2.6和Python2.7中,这三种形式是等价的print "fish"

print ("fish") #print后面有个空格

print("fish") #print()不能带任何其他参数

2. Unicode

python 2 默认支持ASCII编码,是不支持中文的;而Python 3 中默认是utf-8编码,可以识别中文;

Python 2.x中:

>>> str = "我爱北京天安门"

>>>str'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8'

>>> str = u"我爱北京天安门"

>>>str

u'\u6211\u7231\u5317\u4eac\u5929\u5b89\u95e8'

Python 3.x中:

>>> str = "啊哈哈哈"

>>>str'啊哈哈哈'

3. 异常

python 3 中捕获异常的语法由 except Exception,e 改成 except Exception as e

在2.x时代,所有类型的对象都可以直接被抛出;但在3.x时代,只有继承自BaseException的对象才可以被抛出,而且会让异常变得更为专一,只有在错误发生的情况才能用异常捕获语句来处理。

4. xrange

在Python 2 中 xrange() 是列表,它创建迭代对象的用法是非常流行的。比如:for 循环或者是列表/集合/字典推导式。这个表现十分像生成器。但这个 xrange-iterable 是无穷的,意味着可以无限遍历。由于它的惰性求值,xrange() 函数 比 range() 更快。尽管如此,对比迭代一次,不建议重复迭代多次,因为生成器每次都从头开始。

在Python 3 中,range是可迭代对象;range()是像 xrange() 那样实现,在 Python 3 中 xrange() 会抛出命名异常。

5. 不等运算符

Python 2.x 中的不等于有两种写法: != 和 <>

Python 3.x 中去掉了 <>,只有一种 != 写法

6. 数据类型

Python 3.x 去除了long类型,只有一个int类型,但它的行为就像是 2.x 版本的long;而且新增了bytes类型

str对象和bytes对象可以用 .encode(str -> bytes) 或 .decode(bytes -> str)方法实现相互转化

7. raw_input() 和 input()

Python 2 有两个全局函数,用在命令行请求用户输入

第一个是:input(),等待用户输入python表达式,然后返回结果;

第二个是:raw_input(),用户输入什么内容就返回什么

8. 全局函数CALLABLE()

Python 2 中可以使用全局函数callable()来检查一个对象是否可调用;而在Python 3 中,这个全局函数被取消了,为了检查一个对象是否可调用,可以检查特殊方法__call__()的存在性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值