1. 程式人生 > >AI programming with python-Intro to python

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