本文目錄一覽:
- 1、python2和python的區別
- 2、用python2還是python3
- 3、ubuntu上怎麼設置默認python命令是執行python3而不是python2
- 4、python2和python有什麼區別
python2和python的區別
1. print不再是語句,而是函數,比如原來是 print ‘abc’ 現在是 print(‘abc’)
但是 python2.6+ 可以使用 from __future__ import print_function 來實現相同功能
2. 在Python 3中,沒有舊式類,只有新式類,也就是說不用再像這樣 class Foobar(object): pass 顯式地子類化object
但是最好還是加上. 主要區別在於 old-style 是 classtype 類型而 new-style 是 type類型
3. 原來1/2(兩個整數相除)結果是0,現在是0.5了
python 2.2+ 以上都可以使用 from __future__ import division 實現改特性, 同時注意 // 取代了之前的 / 運算
4. 新的字元串格式化方法format取代%
錯誤, 從 python2.6+ 開始已經在str和unicode中有該方法, 同時 python3依然支持 % 算符
5. xrange重命名為range
同時更改的還有一系列內置函數及方法, 都返回迭代器對象, 而不是列表或者 元組, 比如 filter, map, dict.items 等
6. !=取代
python2 也很少有人用 所以不算什麼修改
7. long重命名為int
不完全對, python3 徹底廢棄了 long+int 雙整數實現的方法, 統一為 int , 支持高精度整數運算.
8. except Exception, e變成except (Exception) as e
只有 python2.5 及以下版本不支持該語法. python2.6 是支持的. 不算新東西
9. exec變成函數
類似 print() 的變化, 之前是語句.
簡單補充下
* 主要是類庫的變化, 組織結構變了些. 但功能沒變. urlparse – urllib.parse 這樣的變化
* 最核心的變化它沒有說, 對 bytes 和 原生 UNICODE 字元串的支持, 刪除了 unicode 對象, str 為原生 unicode 字元串, bytes 替代了之前的 str 這個是最核心的.
* 其它… 貌似不怎麼重要了.
用python2還是python3
目前Python的版本有 Python 2 和 Python 3兩個版本 。 那如果想學習Python,是選擇學習 Python2 還是 Python 3呢?
白月黑羽認為首先你需要了解Python2 和Python3 的區別,然後才能根據你的情況作出正確的選擇。
分析
目前Python2 用的最多的是Python2.7,由於歷史原因,Python2可以說是使用的時間很長,應用最廣泛的一個版本,舉兩個例子:
如果做底層開發,應該知道UDK、UEFI,UEFI的核心代碼的編譯工具和腳本都是基於Python2.7開發的
目前所有的Linux版本,包括Ubuntu、redhat、centos、FC等,系統默認工具和安裝的Python版本為皆為2(大多數為Python2.7),大家可以在黑屏終端裡面直接輸入Python 查詢
第一個可能只有業內人士知道,但是第二個,只要你從事軟體開發的人,就會明白Python2.7的應用範圍之廣。
由於大量的第三方庫和工具都是在Python2上開發的,而且,最早學習Python的人也都是從Python2開始學習了,產品也在Python2 上開發和維護,所以, Python組織還在維護 Python 2。造成了Python 2 和 Python 3 並存的狀態, 而且在很長的一段時間將繼續存在。但是,Python 組織 官方宣布,到 2020年,不再維護 Python 2 了
至於Python3,它是 Python 2的 升級版,語法和庫有一些差異,但不兼容Python 2。從發展趨勢上看,整個業界都在 往 Python 3 轉,是大勢所趨。
選擇
那是學習 Python2 還是 Python 3呢?白月黑羽認為:
如果你是一個初學者,白月黑羽建議你可以 直接學習 Python 3,從這裡開始和白月黑羽一起學習Python3吧!
如果你是一個Python2 的開發者,白月黑羽也建議先了解Python2和Python3的區別,以便把你的產品早日升級支持Python 3
Python3 目前使用比較廣泛的是Python3.6,但最新的是Python3.7,我們的教程的參考版本也是Python3.6,至於是使用 python3.6 而不是 3.7。 具體原因,請參考選擇 Python3.6 還是 Python 3.7
推薦學習《python教程》。
ubuntu上怎麼設置默認python命令是執行python3而不是python2
首先看你的PATH變數,把python3所在的目錄放到前面,然後看看用which命令查看python指向那個文件,一般是軟鏈接,看它指向的是python2還是python3,如果沒有指向python3的,新建一個
python2和python有什麼區別
很多初學者剛開始學python的時候,一定都遇到過這個問題,python的世界有2個版本,python2 和 python3 ,而且有些語法還不兼容.怎麼辦~~到底應該選擇哪個版本來開發呢?好,今天我們就來聊聊這個話題.
1.Python2和Python3的歷史背景
Python語言是在20世紀90年代誕生的,算算到現在已經是25歲的大叔級的語言了(跟它同一個時代的還有一個鼎鼎大名的java是在1995發行的, 紅了幾十年).
但是Python真正成名比java晚了很多年,其實也主要是應用領域的時代變遷.(猜測為啥,對了大數據的出現)
Python2是Python裡面一個非常重要的版本,最早的版本是從2001的時候開始的,特別是從2006年開始py2.5的發布,python的功能逐漸強大起來,慢慢開始穩定下來,並且差不多1-2年左右遞增一個版本,在08年左右開始慢慢的火起來了.
而Python3最早是從2008開始發布,但是py3.0的版本非常不穩定,所以社區更新的很快,差不多幾個月就更新一次。所以一開始的時候並沒有很多人用,只到2014春暖花開的時候python3.4 deliver了才開始慢慢穩定下來.
下面我們看一個數據,這是Python社區聯和一些網站在2014做的一個調查,關於Python2/3,部分的結果如下:
1).97.51%用戶還在寫Python2的代碼
2).60%的用戶寫Python3的代碼
3).78.09%的用戶更多地寫Python2代碼
4).77.09%的用戶認可Python3
目前有一些Linux里的操作系統已經默認使用Python3:
1).Arch Linux (輕量級的Linux操作系統)
2).Ubuntu 16.04 (一個桌面應用為主的Linux操作系統)
3).Fedora(Redhat桌面版本的延續)
2.Python2和Python3的主要區別:
目前最新的數據是,Python有兩個版本:一個是2.7.12版,一個是3.5.12版.
那麼Python2運行的好好的,為啥突然要出個Python3呢,其實是為了解決Python2裡面一些歷史問題
第一個是字元串的問題:
Python 2 中文本和二進位數據是一個爛攤子,Python中的str 是代表二進位數據還是文本數據是有二義性,文字既能代表文本數據又能代表二進位數據這很麻煩,此類錯誤發生的時候,我們很難意識到。
第二個是對Unicode的支持
由於python是在1991年2月開源發布,這意味著它早於在1991年10月發布的第一版 Unicode 標準。在接下來幾年中,晚於 Unicode 標準出現的語言都選擇在支持 Unicode 編碼的基礎上實現自己的 str 類型,這讓 Python 2 處於尷尬的境地。
目前是一個python2/3共存的時代,這兩個版本是不兼容的。
python2現在只是做bug的修復,新硬體和操作系統兼容的相關維護工作。不會再有新的功能加入,python2只支持到2020年.
現在Python正在朝著3版本進化,在進化過程中,大量的針對2.x版本的代碼要修改後才能運行,所以目前有許多第三方庫還暫時無法在3.x上使用。
不過可以暢想一下,也許再過幾年情況就會好很多,畢竟全世界有很多優秀的程序員正在把一些庫從Py2往Py3上遷移.
3.選擇還是要根據自己的需求
若是企業的開發,要滿足工作的需求,尤其是依賴的軟體只能運行在Python2下,首選Python2.比如你的開發需要依賴大量的第三方的庫(因為學Python非常大的一個原因就是因為它有成千上萬的第三方包),像大量的數據分析,科學計算,還是選Python2吧.
如果你是自己學習,研究的話,願意擁抱變化,那麼建議學Python3,因為它是未來的方向.
結論:
編程其實主要是對編程思想的理解和經驗的積累,千萬不要因為糾結學Py2還是Py3而浪費大量時間。
Py2和Py3裡面的思想基本是相通的,招式是類似的.當你熟悉Python到一定的程序的時候,會Py2的人學Py3隻需要很短的時間。
所以不要再糾結細枝末節的語法差異,而耽誤了寶貴的學習時間。
好了Python2和Python3的恩怨情仇就講到這裡啦(它們還要相愛相殺一段時間),希望能給初學者一些啟發,若有什麼不懂的,也可以留言跟我探討交流.
最後說一下,原創不易,希望大家能夠給點支持,歡迎轉發,留言,也是對我的一點鼓勵和動力.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304260.html