Python 學習筆記(一)[語法基礎]
阿新 • • 發佈:2018-11-27
資料型別
數字
- 整數(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)