python2
『壹』 python中n%2是什麼意思
% 是python 運算符 返回余數
n 是 變數 number
n % 2 可以用來判斷 n 是否被 2 整除,檢測奇,偶數。
『貳』 python2和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的恩怨情仇就講到這里啦(它們還要相愛相殺一段時間),希望能給初學者一些啟發,若有什麼不懂的,也可以留言跟我探討交流.
最後說一下,原創不易,希望大家能夠給點支持,歡迎轉發,留言,也是對我的一點鼓勵和動力.
『叄』 python中2*=3是什麼意思
語法錯誤
如果是 a *= 3 的話, 表示a=a*3, 左值必須要是變數才可以
『肆』 Python 2**2**3=256
解析:
**表示冪運算,優先順序是右結合,a ** b即求a的b次方。
右結合的意思是說多次冪運算先遞歸計算右邊的結果:a ** b ** c = a ** ( b ** c)。
所以2 ** 2 ** 3 = 2 ** (2 ** 3) = 2 ** 8 = 256。
(4)python2擴展閱讀:
Python的表達式寫法與C/C++類似。只是在某些寫法有所差別。
主要的算術運算符與C/C++類似。+, -, *, /, //, **, ~, %分別表示加法或者取正、減法或者取負、乘法、除法、整除、乘方、取補、取余。
>>, <<表示右移和左移。&, |, ^表示二進制的AND, OR, XOR運算。>, <, ==, !=, <=, >=用於比較兩個表達式的值,分別表示大於、小於、等於、不等於、小於等於、大於等於。在這些運算符裡面,~, |, ^, &, <<, >>必須應用於整數。
Python使用and, or, not表示邏輯運算。
is, is not用於比較兩個變數是否是同一個對象。in, not in用於判斷一個對象是否屬於另外一個對象。Python支持「列表推導式」(list comprehension)。
『伍』 python中python2和python3之間怎麼轉換
python中python2和python3之間的轉換方式如下:
一、放棄python 2.6之前的python版本
python 2.6之前的python版本缺少一些新特性,會給你的遷移工作帶來不少麻煩。如果不是迫不得已還是放棄對之前版本的支持吧。
二、使用 2to3 工具對代碼進行檢查和轉換
2to3是python自帶的一個代碼轉換工具,可以將python2的代碼自動轉換為python3的代碼。當然,不幸的是轉換出的代碼並沒有對python2的兼容做任何的處理。所以我們並不真正使用2to3轉換出的代碼。執行2to3.py 查看輸出信息,並修正相關問題。為了簡化這個轉換過程,這個腳本會將你的Python 2程序源文件作為輸入,然後自動將其轉換到Python 3的形式。
『陸』 python2和python3的區別
簡單的說,2是舊3是新,3是2的升級版,3完全高於2,2是時代的眼淚3是現在和未來,2逐漸被淘汰3用的人越來越多。
之前兩個版本共存只是因為諸多package的更新換代並沒有跟上,但是到了現在只要還有活人維護的package基本都兼容3了,然而新建的package卻越來越多不兼容2。使用2的意義基本沒有了,日常用3大不了留一個2備用就行。
『柒』 python 2**2**0
python中定義的指數運算的優先順序是從右到左,可以參考python的官方文檔 5.4節《指數運算》(http://docs.python.org/2/reference/expressions.html#the-power-operator)。
根據這條定義,2**2**0=2**(2**0)=2**1=2
如果想要得到1的答案,就需要用括弧強調從左到右的運算順序,(2**2)**0=4**0=1
『捌』 python2和python的區別
1.print不再是語句,而是函數,比如原來是print'abc'現在是print('abc')
但是python2.6+可以使用from__future__importprint_function來實現相同功能
2.在Python3中,沒有舊式類,只有新式類,也就是說不用再像這樣classFoobar(object):pass顯式地子類化object
但是最好還是加上.主要區別在於old-style是classtype類型而new-style是type類型
3.原來1/2(兩個整數相除)結果是0,現在是0.5了
python2.2+以上都可以使用from__future__importdivision實現改特性,同時注意//取代了之前的/運算
4.新的字元串格式化方法format取代%
錯誤,從python2.6+開始已經在str和unicode中有該方法,同時python3依然支持%算符
5.xrange重命名為range
同時更改的還有一系列內置函數及方法,都返回迭代器對象,而不是列表或者元組,比如filter,map,dict.items等
6.!=取代<>
python2也很少有人用<>所以不算什麼修改
7.long重命名為int
不完全對,python3徹底廢棄了long+int雙整數實現的方法,統一為int,支持高精度整數運算.
8.exceptException,e變成except(Exception)ase
只有python2.5及以下版本不支持該語法.python2.6是支持的.不算新東西
9.exec變成函數
類似print()的變化,之前是語句.
簡單補充下
*主要是類庫的變化,組織結構變了些.但功能沒變.urlparse->urllib.parse這樣的變化
*最核心的變化它沒有說,對bytes和原生UNICODE字元串的支持,刪除了unicode對象,str為原生unicode字元串,bytes替代了之前的str這個是最核心的.
*其它...貌似不怎麼重要了.
『玖』 python語言中:[:-2]是什麼意思
丟棄序列的最後兩個字元。
比如a=[1,2,3,4,5,6]
print(a[:-2])
『拾』 Python3和Python2的區別
具體區別如下
1:列印時,py2需要可以不需要加括弧,py3 需要python 2 :print ('lili') , print 'lili'python 3 : print ('lili') python3 必須加括弧exec語句被python3廢棄,統一使用exec函數
2:內涵
Python2:1,臃腫,源碼的重復量很多。 2,語法不清晰,摻雜著C,php,Java的一些陋習。
Python3:幾乎是重構後的源碼,規范,清晰,優美。
3: 輸出中文的區別python2:要輸出中文 需加 # -*- encoding:utf-8 -*-Python3 :直接輸出
4:input不同python2 :raw_input python3 :input 統一使用input函數
5:指定位元組python2在編譯安裝時,可以通過參數-----enable-unicode=ucs2 或-----enable-unicode=ucs4分別用於指定使用2個位元組、4個位元組表示一個unicode;python3無法進行選擇,默認使用 ucs4查看當前python中表示unicode字元串時佔用的空間:impor sysprint(sys.maxunicode)#如果值是65535,則表示使用usc2標准,即:2個位元組表示#如果值是1114111,則表示使用usc4標准,即:4個位元組表示
6:py2:xrangerangepy3:range 統一使用range,Python3中range的機制也進行修改並提高了大數據集生成效率
7:在包的知識點里包:一群模塊文件的集合 + __init__區別:py2 : 必須有__init__py3:不是必須的了
8:不相等操作符"<>"被Python3廢棄,統一使用"!="
9:long整數類型被Python3廢棄,統一使用int
10:迭代器iterator的next()函數被Python3廢棄,統一使用next(iterator)
11:異常StandardError 被Python3廢棄,統一使用Exception
12:字典變數的has_key函數被Python廢棄,統一使用in關鍵詞
13:file函數被Python3廢棄,統一使用open來處理文件,可以通過io.IOBase檢查文件類型