python2與python3 版本區別
- 2019 年 10 月 8 日
- 筆記
目錄
編碼
- python2默認編碼器為ascii碼(只支持字母和符號)python3默認編碼器為utf-8(所有語言都支持)
- 在python2 print "gkf" python3 prinnt("gkf") python2.7版本兩種寫法都支持
輸入輸出
- python2 name = raw_input("請輸入姓名") python3 name =input("請輸入姓名")
中文
- python2 coding:utf-8(文件頭加,支持中文)
除法
- py2除法除盡 from_future_ import division 需導入模塊
- py3默認地板除(除盡)
- py2隻取整數部分,小數不保留
長整形
- py2 有長整型後跟L表示 py3中沒有長整形(long)自動轉化
內置函數map
- 內置函數map 結果py3不展示 py2直接展示
- y2:返回列表
- py3:返回迭代器,可以循環但不可以索引
xrange
- py2 xrange(不會立即生成,而是遍循環遍創建)/range(在內存中把所有的值立即生成) py3 range 要想實現xrange list(range(數字))
init
- 對於包的定義:
- py2:文件見中必須有 _ init _.py 。
- py3:不需要 _ init _.py .
reduce
- reduce() 函數在 python 2 是內置函數, 從python 3 開始移到了 functools 模塊。
字符串類型
- 字符串類型不同
- py3: str bytes
- py2: unicode str
dict字典
- 字典
- keys
- py2:列表
- py3:迭代器,可以循環但不可以索引
- values
- py2:列表
- py3:迭代器,可以循環但不可以索引
- items
- py2:列表
- py3:迭代器,可以循環但不可以索引
- keys
經典類 新式類
- 面向對象多繼承查找
- Py2經典類: 深度優先
- 新式類: 廣度優先
- 面向對象新式類和經典類 經典類:
- Py2:沒有super()方法
- 沒有mro()方法:類的查找順序
- 深度優先
新式類:
- super按照mro的查找順序,查找自己的下一個類
未完待補充
歡迎補充~
作 者:郭楷豐