1. 程式人生 > >Python 學習筆記(一)[語法基礎]

Python 學習筆記(一)[語法基礎]

資料型別

數字

  • 整數(int,long):記憶體決定長度,不支援自增(++)和自減(–)
  • 浮點數(float):帶小數點的數,無窮小數會做精度處理
  • 布林(bool):非空(None)非 0 → true,0 或空(None) → false
  • 複數(complex):表示向量,如:2 + 3j 或 2 + 3J

字串(str)

  • 定義:單引雙引交替使用,不可變
  • 索引:str[index],從左往右 → 從 0 開始,從右往左 → 從 -1 開始
  • 切片:str[start:stop:step],左閉右開

列表(list)

  • 定義:可儲存任意型別,如:[1,0.2,‘abc’,[1]]
  • 操作:支援索引和切片,修改:str[index] = 任意型別的值
  • 字串 → 列表:eval(’[1,2,3,4]’)

元組(tuple)

  • 定義:與列表類似,可儲存任意型別,如:(1,0.2,‘abc’,(1)),只含有一個元素時,會轉變成資料的型別,所以要加逗號:myTuple
    = (1,)
  • 操作:支援索引和切片,不支援修改,但可以修改其中的列表中的元素值

變數引用計數

  • 擁有相同值的變數共享一個地址
  • 用 sys下的 getrefcount() 檢視引用計數
import sys
sys.getrefcount(value)
  • 優點:節約記憶體,防止產生多餘的記憶體碎片

運算表示式

算數表示式

  • 除法精確到浮點數,其它運算返回值型別,取決於參與運算中最複雜的型別
  • //:向下取整,如:7 // 2 = 3
  • round():可控制結果精度,預設四捨五入,如:round(10/3,4) = 3.3333,round(10/3) =
    3,round(7/2) = 4
  • %:取餘,如:7 % 2 = 1
  • **:冪,如:2 ** 4 = 16

邏輯表示式

表示式 意義
not a 非 a
a and b a 且 b
a or b a 或 b
a is b a 和 b 是一個物件
a is not b a 和 b 不是一個物件
  • ==:只判斷值
  • is:判斷值、記憶體地址、資料型別

關係表示式

表示式 意義
a == b a 等於 b
a != b a 不等於 b
a <> b 已廢棄
a > b a 大於 b
a < b a 小於 b
a >= b a 大於等於 b
a <= b a 小於等於 b

位運算

表示式 意義
~a 安位取反
a << n 左移 n 位
a >> n 右移 n 位
a & b 按位與
a | b 按位或
a ^ b 按位異或

二進位制

計算機中儲存的是補碼,位運算是補碼在進行運算,整數的原始碼、反碼、補碼都是其本身

1 -1 負數步驟
原始碼 0000 0001 1000 0001 符號位在第一位,正 → 0,負 → 1
反碼 0000 0001 1111 1110 符號位不變,其它取反
補碼 0000 0001 1111 1111 反碼加一

判斷、迴圈

if

if a == b:
    print('a == b')
elif a < b:
    print('a < b')
else:
    print('a > b')

while

while a > 10:
    print('a > 10')
    if(a < 20):
        print('a < 20')
        break
    a = a - 10

for

for var in [1,2,3]:
    if var == 2:
        continue
print(var)