AI programming with python-Intro to python
1, python 中的算術符號:
addition +
subtraction -
multiplication *
division /
exponentiation
(注意乘方不是^)
modulo %
integer division // (無論正數、負數,都向下取整)
2, 賦值操作
=,-=,+=等等(直接在變數後++在python中不可用,在C中和perl中都可以)
3, 對標準型別進行分類
以訪問模型分類:
分類 | python型別 |
---|---|
直接訪問 | 數字 |
順序訪問 | 字串,列表,元祖 |
對映訪問 | 字典 |
以標準型別分類:
資料型別 | 儲存模型 | 更新模型 | 訪問模型 |
---|---|---|---|
數字 | 標量 | 不可更改 | 直接訪問 |
字串 | 標量 | 不可更改 | 順序訪問 |
列表 | 容器 | 可更改 | 順序訪問 |
元祖 | 容器 | 不可更改 | 順序訪問 |
字典 | 容器 | 可更改 | 對映訪問 |
集合訪問也沒有順序,分為可變集和不可變集。可變集合是不可雜湊的,不能作為字典的鍵和其它集合的元素;不可變集合有固定的雜湊值,可以作為字典的鍵和其它集合的元素。
4, membership操作
字串和列表都可以用in或者not in來判斷有沒有某個元素存在
5, 應用在list中的函式
min(), max(), sorted(),如果是對只有數字的列表進行比較,則根據數值的大小;如果是對只有字串的列表進行比較,則根據字元的排序順序(ASCII碼)決定大小;如果既包含數字,又包含字母,則報錯。
6, 對字典進行賦值
dict_test = {‘a’:1, ‘b’:2}
dict_test[‘a’]輸出為1
7, identity操作
is, is not
==, !=
is比較兩個變數是否有相同的記憶體地址,
則判斷兩個變數是否相同(比如呼叫__eq__等方法)。比較是否為None物件時,要用is
8,python將bool值判為0的情況
1,constants defined to be false: None and False
2,zero of any numeric type: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
3,empty sequences and collections: '"", (), [], {}, set(), range(0)
9, iterable物件
an object that can return one of its elements at a time
10,pop()函式,取出list的最後一個元素,跟append()功能相反
11,用yield可以在函式中建立迭代器,可以進行i.e. for … in …之類的迴圈操作(普通的函式進行這種操作就會報錯)。建立的迭代器是一次性的,用一次就失效了,看下面的程式碼:
def my_range(x):
i = 0
while i < x:
yield i
i += 1
y = my_range(5)
for x in y:
print(x)
for x in y:
print(x)
# 整個程式碼的輸出為
0
1
2
3
4
# 第二次迭代y根本沒有起到作用
12,方括號生成列表解析式,圓括號生成發生器:
sq_list = [x**2 for x in range(10)] # this produces a list of squares
sq_iterator = (x**2 for x in range(10)) # this produces an iterator of squares