Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1886547
  • 博文数量: 2460
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 24729
  • 用 户 组: 普通用户
  • 注册时间: 2020-11-26 14:30
个人简介

更多python、Linux、网络安全学习内容,可移步:www.oldboyedu.com或关注\"老男孩Linux\"公众号

文章分类

全部博文(2460)

文章存档

2024年(310)

2023年(643)

2022年(693)

2021年(734)

2020年(80)

我的朋友

分类: Python/Ruby

2021-04-28 13:59:30

  Python是一门非常不错的编程语言,越来越多人都想要学习Python,不过在学习Python之前,很多人都疑惑Python有两个版本,分别是Python2和Python3,它们之间有什么区别?选择哪个版本合适?

  python3 和 python2 是不兼容的,而且差异比较大,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的。

  Python2与Python3到底有何区别呢?

  1.性能

  Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。

  Py3.1性能比Py2.5慢15%,还有很大的提升空间。

  2.编码

  Py3.X源码文件默认使用utf-8编码

  3. 语法

  1)去除了<>,全部改用!=

  2)去除``,全部改用repr()

  3)关键词加入as 和with,还有True,False,None

  4)整型除法返回浮点数,要得到整型结果,请使用//

  5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量

  6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数

  7)改变了顺序操作符的行为,例如x

  8)输入函数改变了,删除了raw_input,用input代替:

  9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了

  10)新式的8进制字变量,相应地修改了oct()函数。

  11)增加了 2进制字面量和bin()函数

  12)扩展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求两点:rest是list 对象和seq是可迭代的。

  13)新的super(),可以不再给super()传参数,

  14)新的metaclass语法:

  15)支持class decorator。

  4. 字符串和字节串

  1)现在字符串只有str一种类型,但它跟2.x版本的unicode几乎一样。

  2)关于字节串,请参阅“数据类型”的第2条目

  5.数据类型

  1)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long

  2)新增了bytes类型

阅读(583) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~