新手用python2還是3
想學習Python的人都會有一個困惑,那就是Python目前有兩個版本Python2和Python3,Python2與Python3有何區別,兩個版本該學習哪個呢?
python3 和 python2 是不相容的,而且差異比較大,python3是不向下相容的,但是絕大多陣列件和擴充套件都是基於python2的。目前實際應用中大部分暫不考慮 Python3,有的時候注意寫相容 2/3 的程式碼。用 Python2 為主的寫新程式碼時要考慮以後遷移到 Python3 的可能性。據資料統計顯示目前10% 使用 Python 3;20% 既使用Python 2也使用Python 3,Python2用的更多;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編碼,這就使得以下程式碼是合法的:
>>> 中國 = 'china' >>>print(中國) china
3. 語法
1)去除了<>,全部改用!=
2)去除``,全部改用repr()
3)關鍵詞加入as 和with,還有True,False,None
4)整型除法返回浮點數,要得到整型結果,請使用//
5)加入nonlocal語句。使用noclocal x可以直接指派外圍(非全域性)變數
6)去除print語句,加入print()函式實現相同的功能。同樣的還有 exec語句,已經改為exec()函式
4. 字串和位元組串
1)現在字串只有str一種型別,但它跟2.x版本的unicode幾乎一樣。 2)關於位元組串,請參閱“資料型別”的第2條目
5.資料型別
1)Py3.X去除了long型別,現在只有一種整型——int,但它的行為就像2.X版本的long
2)新增了bytes型別,對應於2.X版本的八位串,定義一個bytes字面量的方法如下:
>>> b = b'china' >>> type(b) <type 'bytes'>
str物件和bytes物件可以使用.encode() (str-> bytes) or .decode() (bytes -> str)方法相互轉化。
>>> s = b.decode() >>> s 'china' >>> b1 = s.encode() >>> b1 b'china'
3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函式都被廢棄。同時去掉的還有
dict.has_key(),用 in替代它吧
更多學習內容,請點選
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3486/viewspace-2836142/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 初學者學習python2還是python3?Python
- 學習Python選擇Python2還是Python3呢?Python
- 新手學習python2還是python3?詳細區別講解Python
- Python初學者,選擇Python2還是選擇Python3好?Python
- 智慧數字經營是什麼?是噱頭還是創新?
- Mashable:Twitter是新聞媒體的敵人還是情人
- 通訊產業報:3G 是老了還是未老先衰?產業
- mac m3安裝python2MacPython
- 元宇宙遊戲是新的割韭菜還是共同富裕?元宇宙遊戲
- “人形機器人”,新產業還是舊思維?機器人產業
- Python2轉Python3比較Python
- python2和python3的不同Python
- 作秀還是作為?解析微軟新開放戰略微軟
- Python2升級Python3(1):xrangePython
- Python2與Python3的區別Python
- windows下 相容Python2和Python3WindowsPython
- Python2和Python3的區別Python
- python2和3的一些區別Python
- python2到python3程式碼轉化:2to3Python
- Linux下判斷磁碟是SSD還是HDD的3種方法Linux
- 大衛談學習3:方法還是問題,這是個問題!
- 和超3萬玩家一起擠在安防市場,AI技術公司是滄海一粟還是收割新貴?AI
- 營銷與財務:推動創新還是落後?
- 非對稱PVP,到底是黑馬遊戲的神坑還是新希望?遊戲
- 讓pip使用python3而不是python2Python
- 完美解決 Python2 和 python3 共存Python
- 2019年python學3還是2Python
- Python2、3並存,Python3無法安裝requests模組Python
- python2Python
- 社交電商,究竟是坑還是零售新趨勢?
- FAA又出商用無人機新規定,然而還是不能送快遞無人機
- 智慧便利店:究竟是新風口還是假把式?
- python3和python2中的filter區別PythonFilter
- Mac安裝python2和python3,並配置MacPython
- Python2和Python3中print的不同點Python
- Mac打造python2 python3開發環境MacPython開發環境
- python3 和 python2 input 功能的不同點Python
- Python2和Python3的10大區別Python