一文告知选择Python2和Python3的区别

Tomorin
Lepaskan: 2018-08-23 17:47:44
asal
2644 orang telah melayarinya

对于初学者来说,只知道python2和Python3是两代版本,但并不知道两代版本之间有哪些差别,本文就来介绍Python2和Python3的区别。

print不再是语句,而是函数,比如原来是 print 'abc' 现在是 print('abc')

但是 python2.6+ 可以使用 from __future__ import print_function 来实现相同功能:

#py2 print("hello")#等价print(“hello”) #py3 print("hello")
Salin selepas log masuk

在Python 3中,没有旧式类,只有新式类,也就是说不用再像这样 class Foobar(object): pass 显式地子类化object
但是最好还是加上. 主要区别在于 old-style 是 classtype 类型而 new-style 是 type类型


原来1/2(两个整数相除)结果是0,现在是0.5了


python 2.2+ 以上都可以使用 from __future__ import division 实现改特性, 同时注意 // 取代了之前的 / 运算
新的字符串格式化方法format取代%错误, 从 python2.6+ 开始已经在str和unicode中有该方法, 同时 python3依然支持 % 算符

xrange重命名为range
同时更改的还有一系列内置函数及方法, 都返回迭代器对象, 而不是列表或者 元组, 比如 filter, map, dict.items 等


!=取代 < > python2 也很少有人用 < > 所以不算什么修改

long重命名为int
不完全对, python3 彻底废弃了 long+int 双整数实现的方法, 统一为 int , 支持高精度整数运算.


except Exception, e变成except (Exception) as e
只有 python2.5 及以下版本不支持该语法. python2.6 是支持的. 不算新东西


exec变成函数
类似 print() 的变化, 之前是语句.

* 主要是类库的变化, 组织结构变了些. 但功能没变. urlparse - > urllib.parse 这样的变化
* 最核心的变化它没有说, 对 bytes 和 原生 UNICODE 字符串的支持, 删除了 unicode 对象, str 为原生 unicode 字符串, bytes 替代了之前的 str 这个是最核心的.


Atas ialah kandungan terperinci 一文告知选择Python2和Python3的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!