基本的數據類型
- numbers :不區分浮點,整形。
- Boolean:用 and ,or
- Strings :單雙引號括起來
高級數據結構
- Lists : 可以改變存儲長度和存儲類型
- slicing:訪問list的sublist。可通過角標來訪問數組。初始化的方法類似于數組。
xs = [1,2, 3];
xs.append();增加元素
xs.pop();刪除末尾元素
animals = ['cat', 'dog', 'monkey']
for idx, animal in enumerate(animal):
print('#%d: %s' % (idx, animal))
- loops
for x in xs:
- list comprehensions: 數組轉化,直接更改輸出的值。
nums = [0, 1, 2, 3] # number list;
square = [x ** 2 for x in nums if x % 2 == 0] # 代碼更緊湊
- Dictionaries
存儲(key , value)對,類似于MAP類型。循環遞歸時使用d.item()
d = {'person' : 2, 'cat' : 4, 'spider' : 8}
for animal, legs in d.items():
print('A %s has %d legs' % (animal, legs))
# 輸出d中的元素
- set
無序元素集合
animals = {'cat', 'dog', 'monkey'}
for index, animal in enumerate(animals)
print('#%d: %s' % (index, animal))
- tuple
不可變的有序鏈表,跟list有非常多的相似的地方。唯一的不同是tuple 既可以作為Set的key,又可以作為Set的value。
d = {(x, x+1) : x for x in range(10)} # create dictionary with tuple keys
t = (5,6)
print(d[t]) #tuple as key
function
- def關鍵字定義函數
def quicksort(arr):
if len(arr) <= 1:
return arr
middle_num = arr(len(arr) //2)
arr_left = [x for x in arr if x < middle_num]
arr_right = [x for x in arr if x > middle_num ]
middle = [x for x in arr if x == middle_num]
return quicksort(arrleft) + middle + quicksort(arr_right)
Dynamic programming language
python為動態語言,書寫時會將許多靜態語言在編譯階段做的工作提前到編寫的時候。
programming paradigms:編程范式
用來劃分變成語言的標準