Python入門基本語法
識別符號:用於變數、函式、類、模組等的名稱。識別符號有如下特定的規則: 1. 區分大小寫。如:gcx 和 GCX是不同的 2. 第一個字元必須是字母、下劃線。其後的字元是:字母、數字、下劃線 3. 不能使用關鍵字。比如:if、or、while 等。 4. 以雙下劃線開頭和結尾的名稱通常有特殊含義,儘量避免這種寫法。比如:__init__是類的建構函式。
Python 識別符號命名規則 開發中,我們通常約定俗稱遵守如下規則:
變數和簡單賦值語句 變數的宣告和賦值 變數的宣告和賦值用於將一個變數繫結到一個物件上,格式如下: 變數名 = 表示式 最簡單的表示式就是字面量。比如:a = 123 。 執行過程中,直譯器先執行右邊的表示式, 生成一個代表表示式運算結果的物件;然後,將這個物件地址賦值給左邊的變數。
變數再呼叫前必須初始化,變數 result在被使用前未做賦值,因此報錯:’result’ is not defined
刪除變數和垃圾回收機制 可以通過 del 語句刪除不在使用的變數。 如果物件沒有變數引用,就會被垃圾回收器回收,清空記憶體空間。
鏈式賦值 鏈式賦值用於同一個物件賦值給多個變數。 x=y=123相當於:x=123; y=123系列解包賦值 系列資料賦值給對應相同個數的變數(個數必須保持一致) a,b,c=4,5,6相當於:a=4;b=5;c=6
常量 Python 不支援常量,即沒有語法規則限制改變一個常量的值。我們只能約定常量的命名規 則,以及在程式的邏輯上不對常量的值作出修改。和java中對比修改常量會提示錯誤
最基本內建資料型別和運算子 每個物件都有型別,python 中最基本的內建資料型別: 1. 整型 整數,2345,10,50 2. 浮點型 小數,3.14 或者科學計數法 314e-2 3. 布林型 表示真假,僅包含:True、False 4. 字串型 由字元組成的序列。 “abc”,”gcx”,“中國”
數字和基本運算子 Python 支援整數(如:50,520)和浮點數(如:3.14,10.0, 1.23e2),我們可以對數字做如下運算。
divmod()函式同時得到商和餘數
整數 Python 中,除 10 進位制,還有其他三種進位制: ·0b 或 0B,二進位制01 ·0o 或 0O,八進位制01234567 ·0x 或 0X,十六進位制 0123456789abcdef
使用 int()實現型別轉換: 1. 浮點數直接捨去小數部分。如:int(9.9)結果是:9 2. 布林值 True 轉為 1,False 轉為 0。如:int(True)結果是 1 3. 字串符合整數格式(浮點數格式不行)則直接轉成對應整數,否則報錯
自動轉型: 整數和浮點數混合運算時, 表示式結果自動轉型成浮點數。 比如: 2+8.0 的結果是 10.0
整數可以有多大? Python2 中,int 是 32 位,可以儲存從-2147483648 到 2147483647 的整數(約± 21 億)。Long 型別是 64 位,可以儲存:-2^63--2^63-1 之間的數值。 Python3 中,int 可以儲存任意大小的整數,long 被取消。我們甚至可以儲存下面的值: Python3 中可以做超大數的計算,而不會造成“整數溢位”,這也是 Python 特別適合科學運算的特點。
浮點數 浮點數,稱為 float。浮點數用a乘b的10次冪來表示形式的科學計數法表示。比如:3.14,表示成:314E-2 或者 314e-2。 這些數字在記憶體中也是按照科學計數法儲存。
型別轉換和四捨五入 1.類似於 int(),我們也可以使用 float()將其他型別轉化成浮點數。 2.整數和浮點數混合運算時,表示式結果自動轉型成浮點數。比如:2+8.0 的結果是 10.0 3.round(value)可以返回四捨五入的值 注:但不會改變原有值,而是產生新的值
增強型賦值運算子 運算子+、-、*,/、//、**和%和賦值符=結合可以構成“增強型賦值運算子”。 a = a + 1等價於:a +=1
時間的表示 計算機中時間的表示是從“1970 年 1 月 1 日 00:00:00”開始,以毫秒(1/1000 秒) 進行計算。我們也把 1970 年這個時刻成為“unix 時間點”。這樣,我們就把時間全部用數字來表示了。
python 中可以通過 time.time() 獲得當前時刻,返回的值是以秒為單位,帶微秒 (1/1000 毫秒)精度的浮點值。例如:1530167364.8566。
布林值 Python2 中沒有布林值,直接用數字 0 表示 False,用數字 1 表示 True。 Python3 中,把 True 和 False 定義成了關鍵字,但他們的本質還是 1 和 0,甚至可以和數字相加。
比較運算子 所有比較運算子返回 1 表示真,返回 0 表示假。這分別與特殊的變數 True 和 False 等價。 以下假設變數 a 為 15,變數 b 為 30:
邏輯運算子
同一運算子同一運算子用於比較兩個物件的儲存單元,實際比較的是物件的地址。
is 與 == 區別: is 用於判斷兩個變數引用物件是否為同一個,既比較物件的地址。 == 用於判斷引用變數引用物件的值是否相等,預設呼叫物件的 __eq__()方法。
整數快取問題Python 僅僅對比較小的整數物件進行快取(範圍為[-5, 256])快取起來,而並非是所有整數對 象。需要注意的是,這僅僅是在命令列中執行,而在 Pycharm 或者儲存為檔案執行,結果是不一樣 的,這是因為直譯器做了一部分優化(範圍是[-5,任意正整數])。 ·總結 1、is 比較兩個物件的 id 值是否相等,是否指向同一個記憶體地址; 2、== 比較的是兩個物件的內容是否相等,值是否相等; 3、小整數物件[-5,256]在全域性直譯器範圍內被放入快取供重複使用; 4、is 運算子比 == 效率高,在變數和 None 進行比較時,應該使用 is。
基本運算子 我們在前面講解了“+”、“-”、“*”、“/”、“//”、“%”等運算子,這裡我們繼續講解一些其他運算子,並進行學習和測試。
運算子優先順序問題 如下優先順序,從高到低。
實際使用中,記住如下簡單的規則即可,複雜的表示式一定要使用小括號組織。 1. 乘除優先加減 2. 位運算和算術運算>比較運算子>賦值運算子>邏輯運算子