新手用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習Python選擇Python2還是Python3呢?Python
- 新手學習python2還是python3?詳細區別講解Python
- Python初學者,選擇Python2還是選擇Python3好?Python
- Python2轉Python3比較Python
- mac m3安裝python2MacPython
- 2019年python學3還是2Python
- Python2升級Python3(1):xrangePython
- windows下 相容Python2和Python3WindowsPython
- Python2和Python3的區別Python
- Python2與Python3的區別Python
- python2到python3程式碼轉化:2to3Python
- 讓pip使用python3而不是python2Python
- 智慧數字經營是什麼?是噱頭還是創新?
- Python3 urllib 與 Python2 urllib的變化Python
- Mac OS下 Anaconda Python2 和 Python3 配置MacPython
- Anaconda快捷搭建Python2和Python3環境Python
- python3和python2中的filter區別PythonFilter
- Mac安裝python2和python3,並配置MacPython
- 元宇宙遊戲是新的割韭菜還是共同富裕?元宇宙遊戲
- Python2、3並存,Python3無法安裝requests模組Python
- Linux下判斷磁碟是SSD還是HDD的3種方法Linux
- Python2 和 Python3 的區別及相容技巧Python
- range方法在Python2和Python3中的不同Python
- “人形機器人”,新產業還是舊思維?機器人產業
- 營銷與財務:推動創新還是落後?
- 618還是那個618,但天貓給出了新答案
- 《怪物獵人 崛起》是盲目的半成品還是靈動的新時代?
- 和超3萬玩家一起擠在安防市場,AI技術公司是滄海一粟還是收割新貴?AI
- Python2和Python3有何區別?小白入門必看!Python
- Python2和Python3的區別?Python入門學習Python
- 非對稱PVP,到底是黑馬遊戲的神坑還是新希望?遊戲
- Python開發:Python2和Python3的共存和切換使用Python
- 使用Anaconda實現Python2和Python3共存及相互轉換Python
- python2 &&pssh 安裝Python
- 怎麼知道 vite 建立的 vue 專案是 vue2還是vue3?ViteVue
- 火爆全網的抖音本地生活運營師,是新風口還是騙局?
- 還在用 OpenFeign?來試試 SpringBoot3 中的這個新玩意!Spring Boot
- 徒手用 Go 寫個 Redis 伺服器(Godis)GoRedis伺服器