當前位置:首頁 » 編程語言 » python23共存

python23共存

發布時間: 2022-09-27 14:31:16

『壹』 兩個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能共存嗎

python2和python3的區別如果你是一個初學者,或者你以前接觸過其他的編程語言,你可能不知道,在開始學習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 相關庫移植的主要障礙,3.3 重新支持 u'',情況大大改善了)學習python2 還是

『叄』 電腦已經裝了python3,怎麼兼容2

由於歷史原因,Python有兩個大的版本分支,Python2和Python3,又由於一些庫只支持某個版本分支,所以需要在電腦上同時安裝Python2和Python3,因此如何讓兩個版本的Python兼容,如何讓腳本在對應的Python版本上運行,這個是值得總結的。

對於Ubuntu 16.04 LTS版本來說,Python2(2.7.12)和Python3(3.5.2)默認同時安裝,默認的python版本是2.7.12。

當python腳本需要python2運行時,只需在腳本前加上,然後運行py xxx.py即可。

#! python2

當python腳本需要python3運行時,只需在腳本前加上,,然後運行py xxx.py即可。

#! python3

就這么簡單。

同時,這也完美解決了在pip在python2和python3共存的環境下報錯,提示Fatal error in launcher: Unable to create process using '"'的問題。

當需要python2的pip時,只需

py -2 -m pip install xxx

當需要python3的pip時,只需

py -3 -m pip install xxx

python2和python3的pip package就這樣可以完美分開了。

『肆』 python3和python2差別為什麼那麼大

python2和python3的區別
如果你是一個初學者,或者你以前接觸過其他的編程語言,你可能不知道,在開始學習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 相關庫移植的主要障礙,3.3 重新支持 u'',情況大大改善了)學習python2 還是
python3 、使用python2 還是 python3 需要看具體情況而定.

所以我建議:
1. 如果是你在企業中,需要用到python而學習python的話,那就要看企業的應用python的版本進行學習;
2. 如果想要更多的成熟解決方案,最少的bug,最穩定的應用那就用python2 ;
3. 如果你是在讀大學的學生,那我建議你學習python3,等到畢業的時候或許python已經成為了主流。

『伍』 windows怎麼管理python兩個版本

Python 2 與 Python 3 共存

安裝 Python 3.3 以上的版本時,Python會在C:Windows文件夾下安裝啟動器py.exe。

雙擊腳本調用的就是這個程序:

如果系統中同時存在 Python 2 和 Python 3,可用它指定版本來運行代碼:

py -2 helloworld.pypy -3 helloworld.py

2和3即是版本。

每次都添加參數太麻煩,直接在Python腳本第一行指定版本:

#! python3

可以雙擊,也可以命令行運行:

py helloworld.py

如果沒有在首行指定版本而用上述命令運行或雙擊,則默認調用Python 2

使用pip:

py -2 -m pip install requestspy -3 -m pip install requests

-m pip表示運行 pip 模塊

原有的python和pip命令仍然有效,默認執行哪一個版本呢?看環境變數中路徑的先後次序。

C:Python34;C:Python34Scripts;C:Python27;C:Python27Scripts;

如上則調用Python 3

『陸』 python 2 python 3共存 cmd pip安裝模塊,怎麼讓python3導入

想學習Python3,但是暫時又離不開Python2。在Windows上如何讓它們共存呢?
目前國內網站經常會讓大家把其中一個python.exe改個名字(嗯,我也這樣講過,在此糾正一下),這樣區分開兩個可執行文件的名字,但是這樣做有一個重大的隱患,就是修改了名字的那個python對應的pip將無法使用。
官方的解法是什麼?
事實上這個問題幾年以前Python社區就給出了官方解決方案,只不過國內一直沒有注意到罷了。
我們在安裝Python3(>=3.3)時,Python的安裝包實際上在系統中安裝了一個啟動器py.exe,默認放置在文件夾C:\Windows\下面。這個啟動器允許我們指定使用Python2還是Python3來運行代碼(當然前提是你已經成功安裝了Python2和Python3)。
如果你有一個Python文件叫 hello.py,那麼你可以這樣用Python2運行它
py -2 hello.py
類似的,如果你想用Python3運行它,就這樣
py -3 hello.py
去掉參數 -2/-3

每次運行都要加入參數-2/-3還是比較麻煩,所以py.exe這個啟動器允許你在代碼中加入說明,表明這個文件應該是由python2解釋運行,還是由python3解釋運行。說明的方法是在代碼文件的最開始加入一行
#! python2
或者
#! python3
分別表示該代碼文件使用Python2或者Python3解釋運行。這樣,運行的時候你的命令就可以簡化為
py hello.py
使用pip
當Python2和Python3同時存在於windows上時,它們對應的pip都叫pip.exe,所以不能夠直接使用 pip install 命令來安裝軟體包。而是要使用啟動器py.exe來指定pip的版本。命令如下:
py -2 -m pip install XXXX
-2 還是表示使用 Python2,-m pip 表示運行 pip 模塊,也就是運行pip命令了。如果是為Python3安裝軟體,那麼命令類似的變成
py -3 -m pip install XXXX
#! python2 和 # coding: utf-8 哪個寫在前面?

對於Python2用戶還有另外一個困惑,Python2要在代碼文件頂部增加一行說明,才能夠在代碼中使用中文。如果指明使用的Python版本也需要在文件頂部增加一行,那哪一行應該放在第一行呢?
#! python2 需要放在第一行,編碼說明可以放在第二行。所以文件開頭應該類似於:
#! python2
# coding: utf-8

有了這些技巧,Python2和Python3就可以愉快地在一起玩耍了~

『柒』 怎麼讓多版本的python共存

同一台PC中,如果同時安裝Python2和Python3環境,會在執行python命令時出現錯誤,操作系統會找到默認的配置進行執行。怎麼樣才能讓python2和python3一起工作又互相不影響呢。
python2和python3版本共存的配置
1、進入python2的安裝路徑如下
修改python.exe,重命名為python2.exe
2、進入python3的安裝路徑
重命名文件python.exe為python3.exe,pythonw.exe為pythonw3.exe
3、配置環境變數,將python2和python3的路徑都配置到path環境變數下
4、此時,我們打開系統的命令行窗口,輸入命令python2進入python2開發環境,輸入命名python3進入python3開發環境
更多Python知識請關注Python自學網

『捌』 多個python版本可以共存嗎

不會。
如果你在Linux下,可以有兩種方式區別:
運行時使用
python a.py(使用Python2.7)
python3 a.py(使用Python3.4)
在文件頭部加上
# /usr/env/bin python(使用Python2.7)
# /usr/env/bin python3(使用Python3.4)
在windows下,如果你是在Python自帶ide下編寫的,那麼編輯器會識別代碼。
如果你已經把兩個Python的路徑添到環境變數中的話,那麼哪個在前就會用哪個Python版本運行代碼。
希望可以幫助到你!

『玖』 在windows環境下用virtualenv將python2.x和python3.x怎麼共存

打開命令行(CMD),輸入python,如果出現下圖則表示安裝成功了

如果顯示錯誤的話,請把Python運行目錄添加到 計算機>屬性>高級系統設置>環境變數>Path中

從官網下載pip,下載完成之後,解壓到一個文件夾,用CMD控制台進入解壓目錄,輸入:python
setup.py install,安裝好後,把這個目錄添加到Path變數中> C:\Python34\Scripts;(python
默認安裝的話就是這個路徑)
直接在CMD下輸入: pip,就會顯示如下圖

現在pip成功安裝了,我們開始安裝 virtualenv,直接在CMD輸入:pip install virtualenv,由於我已經安裝過了,所以顯示報錯了。

安裝成功後進入到 C:\Python34\Scripts目錄下,輸入命令:virtualven venv
創建虛擬Python環境的文件夾

創建成功後cd進入剛才創建的文件夾,在python安裝目錄中會多出一個文件夾venv,去看看是不是 =.= ,然後輸入:Scripts\activate ,前面多了個(venv)符號表示進入了這個虛擬環境中了,你可以隨便怎麼搞了。
退出環境:deactivate 回車就好(在python中,要退出python才可以退出虛擬環境)

『拾』 python2和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)去除了<>,全部改用!=

在Python 2里,為了得到一個任意對象的字元串表示,有一種把對象包裝在反引號里(比如`x`)的特殊語法。在Python 3里,這種能力仍然存在,但是你不能再使用反引號獲得這種字元串表示了。你需要使用全局函數repr()。

Notes

Python 2

Python 3

`x` repr(x)

`'PapayaWhip' + `2`` repr('PapayaWhip'+repr(2))

Note:x可以是任何東西—一個類,函數,模塊,基本數據類型,等等。repr()函數可以使用任何類型的參數。

2)去除``,全部改用repr()

3)關鍵詞加入as 和with,還有True,False,None

4)整型除法返回浮點數,要得到整型結果,請使用//

由於人們常常會忽視Python 3在整數除法上的改動(寫錯了也不會觸發Syntax Error),所以在移植代碼或在Python 2中執行Python 3的代碼時,需要特別注意這個改動。

所以,我還是會在Python 3的腳本中嘗試用float(3)/2或 3/2.0代替3/2,以此來避免代碼在Python 2環境下可能導致的錯誤(或與之相反,在Python 2腳本中用from __future__ import division來使用Python 3的除法)。

Python 2

print'3/2=',3/2print'3//2=',3//2print'3/2.0=',3/2.0print'3//2.0=',3//2.0
3/2=13//2=13/2.0=1.53//2.0=1.0

默認,如果兩個操作數都是整數,Python 2 自動執行整型計算。

Python 3

print('3/2=',3/2)print('3//2=',3//2)print('3/2.0=',3/2.0)print('3//2.0=',3//2.0)
3/2=1.53//2=13/2.0=1.53//2.0=1.0

Note: 需要注意的是「雙劃線」(//)操作符將一直執行整除,而不管操作數的類型,這就是為什麼 5.0//2.0 值為 2.0。Python 3 中,/ 操作符是做浮點除法,而 // 是做整除(即商沒有餘數,比如 10 // 3 其結果就為 3,余數會被截除掉,而 (-7) // 3 的結果卻是 -3。這個演算法與其它很多編程語言不一樣,需要注意,它們的整除運算會向0的方向取值。而在 Python 2 中,/ 就是整除,即和 Python 3 中的 // 操作符一樣。

5)加入nonlocal語句。使用noclocal x可以直接指派外圍(非全局)變數

6)print

去除print語句,加入print()函數實現相同的功能。同樣的還有 exec語句,已經改為exec()函數

在Python 2里,print是一個語句。無論你想輸出什麼,只要將它們放在print關鍵字後邊就可以。

Python 3里,print()是一個函數。就像其他的函數一樣,print()需要你將想要輸出的東西作為參數傳給它。

例如:
2.X: print "The answer is", 2*2
3.X: print("The answer is", 2*2)
2.X: print x, # 使用逗號結尾禁止換行
3.X: print(x, end=" ") # 使用空格代替換行

在Python 2里,如果你使用一個逗號(,)作為print語句的結尾,它將會用空格分隔輸出的結果,然後在輸出一個尾隨的空格(trailing space),而不輸出回車(carriage return)。在Python 3里,通過把end=' '作為一個關鍵字參數傳給print()可以實現同樣的效果。參數end的默認值為' ',所以通過重新指定end參數的值,可以取消在末尾輸出回車符。
2.X: print # 輸出新行
3.X: print() # 輸出新行
2.X: print >>sys.stderr, "fatal error"
3.X: print("fatal error", file=sys.stderr)

在Python 2里,你可以通過使用>>pipe_name語法,把輸出重定向到一個管道,比如sys.stderr。在Python 3里,你可以通過將管道作為關鍵字參數file的值傳遞給print()來完成同樣的功能。參數file的默認值為std.stdout,所以重新指定它的值將會使print()輸出到一個另外一個管道。
2.X: print (x, y) # 輸出repr((x, y))
3.X: print((x, y)) # 不同於print(x, y)!

exec語句

exec()函數使用一個包含任意Python代碼的字元串作為參數,然後就像執行語句或者表達式一樣執行它。exec()跟eval()是相似的,但是exec()更加強大並更具有技巧性。eval()函數只能執行單獨一條表達式,但是exec()能夠執行多條語句,導入(import),函數聲明—實際上整個Python程序的字元串表示也可以。

Notes

Python 2

Python 3

execcodeString exec(codeString)

execcodeStringina_global_namespace exec(codeString,a_global_namespace)

execcodeStringina_global_namespace,a_local_namespace exec(codeString,a_global_namespace,a_local_namespace)

  • 在最簡單的形式下,因為exec()現在是一個函數,而不是語句,2to3會把這個字元串形式的代碼用括弧圍起來。

  • Python 2里的exec語句可以指定名字空間,代碼將在這個由全局對象組成的私有空間里執行。Python 3也有這樣的功能;你只需要把這個名字空間作為第二個參數傳遞給exec()函數。

  • 更加神奇的是,Python 2里的exec語句還可以指定一個本地名字空間(比如一個函數里聲明的變數)。在Python 3里,exec()函數也有這樣的功能。

  • execfile語句

    就像以前的exec語句,Python 2里的execfile語句也可以像執行Python代碼那樣使用字元串。不同的是exec使用字元串,而execfile則使用文件。在Python 3里,execfile語句已經被去掉了。如果你真的想要執行一個文件里的Python代碼(但是你不想導入它),你可以通過打開這個文件,讀取它的內容,然後調用compile()全局函數強制Python解釋器編譯代碼,然後調用新的exec()函數。

    Notes

    Python 2

    Python 3

  • execfile('a_filename') exec(compile(open('a_filename').read(),'a_filename','exec'))
  • 7)輸入函數改變了,刪除了raw_input,用input代替: Python 2有兩個全局函數,用來在命令行請求用戶輸入。第一個叫做input(),它等待用戶輸入一個Python表達式(然後返回結果)。第二個叫做raw_input(),用戶輸入什麼它就返回什麼。這讓初學者非常困惑,並且這被廣泛地看作是Python語言的一個「肉贅」(wart)。Python 3通過重命名raw_input()為input(),從而切掉了這個肉贅,所以現在的input()就像每個人最初期待的那樣工作。
    2.X:guess = int(raw_input('Enter an integer : ')) # 讀取鍵盤輸入的方法
    3.X:guess = int(input('Enter an integer : '))

    Note:如果你真的想要請求用戶輸入一個Python表達式,計算結果,可以通過調用input()函數然後把返回值傳遞給eval()。

    I/O方法xreadlines()

    在Python 2里,文件對象有一個xreadlines()方法,它返回一個迭代器,一次讀取文件的一行。這在for循環中尤其有用。事實上,後來的Python 2版本給文件對象本身添加了這樣的功能。

    在Python 3里,xreadlines()方法不再可用了。2to3可以解決簡單的情況,但是一些邊緣案例則需要人工介入。

    Notes

    Python 2

    Python 3

  • for line in a_file.xreadlines(): for line in a_file:
  • for line in a_file.xreadlines(5): no change (broken)
  • 如果你以前調用沒有參數的xreadlines(),2to3會把它轉換成文件對象本身。在Python 3里,這種轉換後的代碼可以完成前同樣的工作:一次讀取文件的一行,然後執行for循環的循環體。

  • 如果你以前使用一個參數(每次讀取的行數)調用xreadlines(),2to3不能為你完成從Python 2到Python 3的轉換,你的代碼會以這樣的方式失敗:AttributeError: '_io.TextIOWrapper' object has no attribute 'xreadlines'。你可以手工的把xreadlines()改成readlines()以使代碼能在Python 3下工作。(readline()方法在Python 3里返回迭代器,所以它跟Python 2里的xreadlines()效率是不相上下的。)


  • 8)改變了順序操作符的行為,例如x<y,當x和y類型不匹配時拋出TypeError而不是返回隨即的 bool值

    9)去除元組參數解包。不能def(a, (b, c)):pass這樣定義函數了

    10)新式的8進制字變數,相應地修改了oct()函數。
    2.X的方式如下:
    >>> 0666
    438
    >>> oct(438)
    '0666'


    3.X這樣:
    >>> 0666
    SyntaxError: invalid token (<pyshell#63>, line 1)
    >>> 0o666
    438
    >>> oct(438)
    '0o666'

    11)增加了 2進制字面量和bin()函數
    >>> bin(438)
    '0b110110110'
    >>> _438 = '0b110110110'
    >>> _438
    '0b110110110'

    12)擴展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求兩點:rest是list對象和seq是可迭代的。

    13)新的super(),可以不再給super()傳參數,
    >>> class C(object):
    def __init__(self, a):
    print('C', a)
    >>> class D(C):
    def __init(self, a):
    super().__init__(a) # 無參數調用super()
    >>> D(8)
    C 8
    <__main__.D object at 0x00D7ED90>

    14)支持class decorator。用法與函數decorator一樣:
    >>> def foo(cls_a):
    def print_func(self):
    print('Hello, world!')
    cls_a.print = print_func
    return cls_a
    >>> @foo
    class C(object):
    pass
    >>> C().print()
    Hello, world!

    class decorator可以用來玩玩狸貓換太子的大把戲。更多請參閱PEP 3129

    4. 字元串和位元組串

    Python 2有兩種字元串類型:Unicode字元串和非Unicode字元串。Python 2有基於ASCII的str()類型,其可通過單獨的unicode()函數轉成unicode類型,但沒有byte類型。

    而在Python 3中,終於有了Unicode(utf-8)字元串,以及兩個位元組類:bytes和bytearrays。Python 3隻有一種類型:Unicode字元串(Unicode strings)。只有str一種類型,但它跟2.x版本的unicode幾乎一樣。

    Notes

    Python 2

    Python 3

  • u'PapayaWhip' 'PapayaWhip'
  • ur'PapayaWhipfoo' r'PapayaWhipfoo'
  • Python 2里的Unicode字元串在Python 3里即普通字元串,因為在Python 3里字元串總是Unicode形式的。

  • Unicode原始字元串(raw string)(使用這種字元串,Python不會自動轉義反斜線"")也被替換為普通的字元串,因為在Python 3里,所有原始字元串都是以Unicode編碼的。

  • 全局函數unicode()

    Python 2有兩個全局函數可以把對象強制轉換成字元串:unicode()把對象轉換成Unicode字元串,還有str()把對象轉換為非Unicode字元串。

    Python 3隻有一種字元串類型,Unicode字元串,所以str()函數即可完成所有的功能。(unicode()函數在Python 3里不再存在了。)

    Notes

    Python 2

    Python 3

  • unicode(anything) str(anything)

  • 5.數據類型

    1)Python 2有為非浮點數准備的int和long類型。int類型的最大值不能超過sys.maxint,而且這個最大值是平台相關的。可以通過在數字的末尾附上一個L來定義長整型,顯然,它比int類型表示的數字范圍更大。

    在Python 3里,只有一種整數類型int,大多數情況下,它很像Python 2里的長整型。

    Note:檢查一個變數是否是整型,獲得它的數據類型,並與一個int類型(不是long)的作比較。你也可以使用isinstance()函數來檢查數據類型;再強調一次,使用int,而不是long,來檢查整數類型。

    sys.maxint

    由於長整型和整型被整合在一起了,sys.maxint常量不再精確。但是因為這個值對於檢測特定平台的能力還是有用處的,所以它被Python 3保留,並且重命名為sys.maxsize。

    Notes

    Python 2

    Python 3

  • from sys import maxint from sys import maxsize
熱點內容
多空線源碼 發布:2024-12-26 23:48:45 瀏覽:322
steam有哪些免費且配置低的游戲 發布:2024-12-26 23:45:36 瀏覽:337
怎麼配一台伺服器的游戲電腦 發布:2024-12-26 23:45:35 瀏覽:6
無丁之地下載ftp 發布:2024-12-26 23:36:32 瀏覽:292
em聚類演算法 發布:2024-12-26 23:22:28 瀏覽:669
php字元串去重 發布:2024-12-26 23:22:26 瀏覽:408
vb遞歸演算法 發布:2024-12-26 23:20:52 瀏覽:768
c語言讀取文件的函數 發布:2024-12-26 23:20:40 瀏覽:302
存儲介質安全 發布:2024-12-26 23:17:42 瀏覽:746
centosphp版本 發布:2024-12-26 23:11:59 瀏覽:71