1樓:it青學社
這裡從指猜此幾個大的方面描述:
效能(3效能雖然比2差,但是存在很大的優化空間,尤其出兆汪來)編碼(3預設為utf8)
語法。字串/位元組串。
物件導向(3引入了抽象基類,容器類和迭代器類,所以3的型別唯迅相對2會豐富)
模組變更(3中移除了一些模組比如imageop)當然還有其他的,更對可以去官方瞭解細節。
2樓:育知同創教育
如果你是乙個初學者,或者你以前接觸過其他的程式語言,你可能不知道,在開始學習python的時候都會遇到乙個比較讓人很頭疼的問題:版本問題!!是學習python2 還是學習 python3 ?
這是非常讓人糾結的!
搜尋一下便會發現python3 和 python2 是不相容的,而且差異比較大,到底學習哪個版本呢?下面就來為大家分析一下:
其實python是linux上最常用的軟體之一,但是linux目前的版本大部分還是使用python2的,而且,在linux上依賴python2的程式更多一些,所以 python3 要代替 python2 成為主流還需要幾年的時間。
當初設計 python3 的目的是沒有**相容的包袱的情況下改進 python,但個人認為改進得還不夠大刀闊斧,沒有徹底改進一些bug,還有不少的 wart 錯過了改進機會,因此造成的語法不相容的地方也沒最初設想的多。
人們幾年摸索慢慢下來,大部分的情況下可以直接寫 2/3 相容的**,也有 six 這類的相容層可用。
所以先學 python2 還是 python3 都不是問題,或者說都是問題。
目前現狀是實際應用中大部分暫不考慮 python3,有的時候注意寫相容 2/3 的**。用 python2 為主的寫新**時要考慮以後遷移到 python3 的可能性。
無。論學 python2 還是 python3,都需要注意另外一邊的不同點:所幸就是這些不同點很容易掌握,只有乙個 unicode encoding
對較多人造成困擾(同時也是很多 web 相關庫移植的主要障礙, 重新支援 u'',情況大大改善了)學習python2 還是。
python3 、使用python2 還是 python3 需要看具體情況而定。
所以我建議:
1. 如果是你在企業中,需要用到python而學習python的話,那就要看企業的應用python的版本進行學習;
3. 如果你是在讀大學的學生,那我建議你學習python3,等到畢業的時候或許python已經成為了主流。
3樓:一騎當後
二者區別如下:
1.效能。執行 pystone benchmark的速度比慢30%。guido認為有極大的優化空間,在字串和整形操作上可。
以取雀擾喚得很好的優化結果。
效能比慢15%,還有很大的提公升空間。
2.編碼。原始碼檔案預設使用utf-8編碼,這就使得以下**是合法的:
中國 = china'
print(中國)
china3. 語法。
1)去除了<>,全部改用!=
2)去除``,全部改用repr()
4)整型除法返回浮點數,要得到整型結果,請使用//
5)加入nonlocal語句。使用noclocal x可以直接指派外圍(非全域性李戚)變數。
6)去除print語句,加入print()函式實現相同的功能。同樣的還有 exec語句,已經改為exec()函式。
4. 字頃凱符串和位元組串。
1)現在字串只有str一種型別,但它跟版本的unicode幾乎一樣。
2)關於位元組串,請參閱「資料型別」的第2條目。
4樓:du知道君
總結起來會有很多,所以我搬運了下別人的答案:
以下是知乎的答案:
1. print不再是語句,而是函式,比如原來是 print 'abc' 現在是 print('abc')
但是 可以使用 from __future__ import print_function 來實現相同功能。
2. 在python 3中,沒有舊式類,只有新式類,也就是說不用再像這樣 class foobar(object): pass 顯式地子類化object
但是最好判高還是加上。 主要區別在於 old-style 是 classtype 型別而 new-style 是 type型別。
3. 原來1/2(兩個整數相除)結果是0,現在是了。
python 以上都可以使用 from __future__ import division 實現改特性, 同時注意 //取代了之前的 / 運算。
4. 新的字串格式化方法format取代%
錯誤, 從 開始已經在str和unicode中有該方法, 同時 python3依然支援 % 算符。
6. xrange重新命名為range
同時更改的還有一系列內建函式及方法, 都返回迭代器物件, 而不是列表或者 元組, 比如 filter, map, 等。
7. !取代 <
python2 也很少有人用 < 所以不算什麼修改。
8. long重新命名為int
不畢首完全對, python3 徹底廢棄了 long+int 雙整數實現的方法, 統一為 int , 支援高精度整數運算。
9. except exception, e變成except (exception) as e
只有 及以下版本不支援該語法。 是支掘數尺持的。 不算新東西。
10. exec變成函式。
類似 print() 的變化, 之前是語句。
簡單補充下。
主要是類庫的變化, 組織結構變了些。 但功能沒變。 urlparse - 這樣的變化。
最核心的變化它沒有說, 對 bytes 和 原生 unicode 字串的支援, 刪除了 unicode 物件, str 為原生 unicode 字串, bytes 替代了之前的 str 這個是最核心的。
其它。貌似不怎麼重要了。
python3和Python2的區別
育知同創教育 以下是他們之間的區別 1 python2預設是使用ascii編碼,所以說他們的編碼預設是不支援中文的。python3預設是使用utf 8的編碼,所以他們預設是支援中文的。2 python2是不支援中文編碼的,而且python2 的變數命名只能用英文。python3是支援中文的,而且py...
python大神幫忙看看,python3 selenium使用maximize window最
把chrome降級到55 能正常開啟網頁嗎,開啟網頁之前最大化的還是之後?利用python3 selenium3 chrome 59.0.3053.3做自動化測試時,開啟chrome報錯 20 可以試試bai這段 du能不能用,zhi我這邊和你dao配置一專樣,是可以開的屬 windows系統下py...
Python3中print和printn 換行的行數,為什麼不一樣
因為預設的print 就是自帶乙個換行 了的 其實是裡面有個引數控制的 print end n 預設就是乙個版換行結尾了。所以你權print n 相當於print n end n 不就是兩個換行了麼?print 只是列印乙個空字元,是一行 print n 列印的是換行符,當然兩行,就和我們在記事本裡...