Python學習筆記(一)

來源:互聯網
上載者:User

標籤: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可以處理任意大小的整數,當然包括負整數,在程式中的表示方法和數學上的寫法一模一樣,例如:1100-80800,等等。

電腦由於使用二進位,所以,有時候用十六進位表示整數比較方便,十六進位用0x首碼和0-9,a-f表示,例如:0xff000xa5b4c3d2,等等。

 

浮點數

浮點數也就是小數,之所以稱為浮點數,是因為按照科學記號標記法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是完全相等的。浮點數可以用數學寫法,如1.233.14-9.01,等等。但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。

整數和浮點數在電腦內部儲存的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四捨五入的誤差。

字串

字串是以單引號或雙引號"括起來的任意文本,比如‘abc‘"xyz"等等。請注意,‘‘""本身只是一種表示方式,不是字串的一部分,因此,字串‘abc‘只有abc這3個字元。如果本身也是一個字元,那就可以用""括起來,比如"I‘m OK"包含的字元是Im,空格,OK這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學習筆記(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.