標籤:size 處理 優先順序 動態編譯 指派陳述式 微軟.net 精確 strong 算數運算
一.Python解譯器
CPython
這個解譯器是C語言開發的,所以叫CPython。在命令列運行python就是啟動CPython解譯器。CPython是使用最廣的Python解譯器。
IPython
IPython是基於CPython之上的一個互動式解譯器,也就是說,IPython只是在互動方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。
CPython用>>>作為提示符,而IPython用In[序號]:作為提示符。
PyPy
PyPy是另一個Python解譯器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(注意不是解釋),所以可以顯著提高Python代碼的執行速度。
絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解譯器下執行可能會有不同的結果。
Jython
Jython是運行在Java平台上的Python解譯器,可以直接把Python代碼編譯成Java位元組碼執行。
IronPython
IronPython和Jython類似,只不過IronPython是運行在微軟.Net平台上的Python解譯器,可以直接把Python代碼編譯成.Net的位元組碼。
二.變數
變數定義的規則:
(1)變數名只能是字母、數字或底線的任意組合
(2)變數名的第一個字元不能是數字
(3)以下關鍵字不能聲明為變數名
[‘and‘,‘as‘,‘assert‘,‘break‘,‘class‘,‘continue‘,‘def‘,‘del‘,‘elif‘,‘else‘,‘except‘,‘exec‘,‘finally‘,‘for‘,‘from‘,‘global‘,‘if‘,‘import‘,‘in‘,‘is‘,‘lambda‘,‘not‘,‘or‘,‘pass‘,‘print‘,‘raise‘,‘return‘,‘try‘,‘while‘,‘with‘,‘yield‘]
變數的賦值
在python中,等號=是指派陳述式,可以把任意資料類型賦值給變數,同一個變數可以反覆賦值,而且可以是不同類型的變數。例如:
a = 123print(a)a = ‘python‘print(a)
理解變數在電腦記憶體中的表示。當我們寫:
a=‘ABC‘
時,Python解譯器幹了兩件事:
1.在記憶體中建立了一個‘ABC‘的字串;
2.在記憶體中建立了一個名為a的變數,並把它指向‘ABC‘。
也可以把一個變數a賦值給另一個變數b,這個操作實際上把變數b指向變數a所指向的資料,例如:
a = ‘ABC‘b = aa = ‘XYZ‘print(b)
分析:
執行a = ‘ABC‘,解譯器建立了字串‘ABC‘和變數a,並把a指向了‘ABC‘
執行b = a ,解譯器建立了變數b,並把b指向a指向的字串‘ABC‘
執行a = ‘XYZ‘,解譯器建立了字串‘XYZ‘,並把a的指向改為‘XYZ‘,但b沒有改
所以,最後列印變數b的結果自然是‘ABC‘
三.資料類型
在python中,能夠直接處理的資料類型有以下幾種:
整數
python可以處理任意大小的整數,當然包括負整數,在程式中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。
電腦由於使用二進位,所以,有時候用十六進位表示整數比較方便,十六進位用0x首碼和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。
浮點數
浮點數也就是小數,之所以稱為浮點數,是因為按照科學記號標記法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是完全相等的。浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。
整數和浮點數在電腦內部儲存的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四捨五入的誤差。
字串
字串是以單引號‘或雙引號"括起來的任意文本,比如‘abc‘,"xyz"等等。請注意,‘‘或""本身只是一種表示方式,不是字串的一部分,因此,字串‘abc‘只有a,b,c這3個字元。如果‘本身也是一個字元,那就可以用""括起來,比如"I‘m OK"包含的字元是I,‘,m,空格,O,K這6個字元。
逸出字元\可以轉義很多字元,比如\n表示換行,\t表示定位字元,字元\本身也要轉義,所以\\表示的字元就是\,
Python還允許用r‘‘表示‘‘內部的字串預設不轉義。
布爾值
True False
布爾值可以用and,or,not運算
空值
空值是python裡的一個特殊的值,用None表示。None不能理解為0,因為0是有意義的。
此外,Python還提供了列表、字典等多種資料類型,還允許建立自訂資料類型。
四.編碼
最早的電腦在設計時採用8個位元(bit)作為一個位元組(byte),所以一個位元組能表示的最大整數就是255,如果要表示更大的整數,就必須用更多的位元組。
ASCII:最早只有127個字元被編碼到電腦裡。也就是大小寫英文字母、數字和一些符號
GB2312:用來把中文編進去
Unicode:把所有語言都統一到一套編碼裡,處理了亂碼問題。
ASCII編碼是一個位元組,Unicode編碼通常是2個位元組
UTF-8:可變長編碼,解決了儲存空間問題。常用英文1個位元組,漢字通常3個位元組,生僻的字4-6位元組
五.資料運算
算數運算:
比較運算:
賦值運算:
邏輯運算:
位元運算:
運算子優先順序:
Python學習筆記(一)