想學習Python的人都會有一個困惑,那就是Python目前有兩個版本Python2和Python3,Python2與Python3有何差別,兩個版本該學哪個好呢?
python3 和 python2 是不相容的,而且差異比較大,python3是不向下相容的,但是絕大多數元件和擴充都是基於python2的。目前實際應用大部分暫不考慮 Python3,有的時候注意寫相容 2/3 的程式碼。用 Python2 為主的寫新程式碼時要考慮以後遷移到 Python3 的可能性。根據數據統計顯示目前10% 使用 Python 3;20% 既使用Python 2也使用Python 3,Python 2使用的較多;70% 使用Python 2。
其實python是linux上最常用的軟體之一,但是linux目前的版本大部分還是使用python2的,而且,在linux上依賴python2的程式更多一些,所以 Python3 要代替 python2 成為主流還需要幾年的時間。如果為了找工作還是學Python 2,學會了Python 2,由Python 2轉到python3也不難。
說了半天,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型別 6、物件導向 1)引入抽象基底類別(Abstraact Base Classes,ABCs)。 2)容器類別和迭代器類別被ABCs化,所以cellections模組裡的類型比Py2.5多了許多。 3)迭代器的next()方法改名為__next__(),並增加內建函數next(),用以呼叫迭代器的 4)增加了@abstractmethod和 @ abstractproperty兩個 decorator,編寫抽象方法(屬性)更方便。 7、異常 1)所以異常都從 BaseException繼承,刪除了StardardError 2)移除了異常類別的序列行為和.message屬性 3)用 raise Exception(args)取代 raise Exception, args語法 4)捕獲異常的語法改變,引入了as關鍵字來標識異常實例 #5)異常鏈,因為__context__在3.0a1版本中沒有實現 8、模組變動 2)移除了imageop模組 3)移除了 audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, imeWriter, mimify, popen2, rexec, sets, sha, stringold, strop, sunaudiodev, timing和xmllib模組 4)移除了bsddb模組(單獨發布,可以從Python "bindings" for Oracle Berkeley DB取得) 5)移除了new模組 6)os.tmpnam()和os.tmpfile()函數被移到tmpfile模組下 7)tokenize模組現在使用bytes工作。主要的入口點不再是generate_tokens,而是 tokenize.tokenize() #9、其它 2)bytes物件不能hash,也不支援 b.lower()、b.strip()和b.split()方法 3)zip()、map ()和filter()都回傳迭代器。 4)string.letters和相關的.lowercase和.uppercase被去除,請改用string.ascii_letters 等 5)如果x 6)__getslice__系列成員被廢棄。 7)file類別被廢棄
#1)移除了cPickle模組,可以使用pickle模組代替。最終我們將會有一個透明且有效率的模組。
1)xrange() 改名為range(),要使用range()取得一個list,必須明確呼叫
以上是新手python用什麼版本好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能