Python 之 Python2 和 Python3 的区别
1、默認編碼方式
# Python2?默認編碼方式是 ascll碼
# Python3 默認編碼方式是 utf-8
# Python2?輸出中文要加 ?# -*- encoding:utf-8 -*-
# Python3 不需要
2、print
# Python2 可以使用 print,也可以使用 print() ?例: print('lili') 或 print 'lili'
# Python3 只能使用 print()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例: print('lili')
3、input
# Python2 中是 raw_input?
# Python3 中是 input
4、除法
# Python2?不會,如:5/2=2
# Python3 會取余 如:5/2=2.5
5、內涵
# Python2 ?1,臃腫,源碼的重復量很多 ?2,語法不清晰,摻雜著C,php,Java,的一些陋習。
# Python3 ?幾乎是重構后的源碼,規(guī)范,清晰,優(yōu)美。
6、函數(shù)
# Python3 中的函數(shù)都是新式類
# Python2?中的函數(shù) 新式類和經典類共存
新式類都繼承自object,且super(),和mro()只存在于新式類,只要繼承自object,都是新式類
在多繼承問題中:
1、新式類遵循廣度優(yōu)先,即 A 和 E 能同時到達F ,則走完A之后走C ,即? D? -> B? -> A -> C? -> E? -> F
super的本質 :不是單純找父類 而是根據(jù)調用者的節(jié)點位置的廣度優(yōu)先順序來的,即和廣度優(yōu)先正好相逆 F ?-> E ?-> C? -> A ?-> B ?-> D
2、經典問題遵循深度優(yōu)先 ,一條路走到頭,即 D? -> B? -> A? -> F? -> C? -> E
7、其他
'True和False':py2中是兩個全局變量(1和0)可以重新賦值;py3中為兩個關鍵字,不可重新賦值'迭代':py2:xrange、range py3:統(tǒng)一使用range,并且range的機制也進行修改并提高了大數(shù)據(jù)集生成效率'Nonlocal':py3專有的(聲明為非局部變量)'yield':py2:yieldpy3:yield/yield from'文件操作':py2:readliens()讀取文件的所有行,返回一個列表,包含所有行的結束符xreadliens()返回一個生成器,循環(huán)取值py3: 只有readlines()指定字節(jié)python2在編譯安裝時,可以通過參數(shù)-----enable-unicode=ucs2 或-----enable-unicode=ucs4分別用于指定使用2個字節(jié)、4個字節(jié)表示一個unicode;python3無法進行選擇,默認使用 ucs4查看當前python中表示unicode字符串時占用的空間: impor sys print(sys.maxunicode) # 如果值是65535,則表示使用usc2標準,即:2個字節(jié)表示 # 如果值是1114111,則表示使用usc4標準,即:4個字節(jié)表示包結構:py2:必須有__init__py3:不是必須的了exec語句被python3廢棄,統(tǒng)一使用exec函數(shù)不相等操作符"<>"被Python3廢棄,統(tǒng)一使用"!="long整數(shù)類型被Python3廢棄,統(tǒng)一使用int迭代器iterator的next()函數(shù)被Python3廢棄,統(tǒng)一使用next(iterator)異常StandardError 被Python3廢棄,統(tǒng)一使用Exception字典變量的has_key函數(shù)被Python廢棄,統(tǒng)一使用in關鍵詞file函數(shù)被Python3廢棄,統(tǒng)一使用open來處理文件,可以通過io.IOBase檢查文件類型?
總結
以上是生活随笔為你收集整理的Python 之 Python2 和 Python3 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python剑指offer替换空格_迷人
- 下一篇: python后端数据发送到前端_Pyth