布爾數中的短路法則:web
1. 在計算 a and b
時,若是 a 是 False,則根據與運算法則,整個結果一定爲 False,所以返回 a;若是 a 是 True,則整個計算結果一定取決與 b,所以返回 b。算法
2. 在計算 a or b
時,若是 a 是 True,則根據或運算法則,整個計算結果一定爲 True,所以返回 a;若是 a 是 False,則整個計算結果一定取決於 b,所以返回 b。數組
因此Python解釋器在作布爾運算時,若是提早肯定計算結果,就不會日後算了,直接返回結果。數據結構
構造listapp
2)構造list很簡單,按照上面的代碼,直接用 [ ]
把list的全部元素都括起來,就是一個list對象。一般,咱們會把list賦值給一個變量,這樣,就能夠經過變量來引用list:意義上是數學的有序集合函數
3)按照索引訪問list 須要特別注意的是,索引從 0 開始,也就是說,第一個元素的索引是0,第二個元素的索引是1,以此類推。(類比數組)spa
當索引數字爲負數時,表示逆序讀出List中的內容 L = [1, 2, 3] print L[-1]-->2 ps:不能越界 out of range翻譯
4)添加新元素 運用函數append()老是把新的元素添加到 list 的尾部 L.insert(0, 'X') 的意思是,'Paul'將被添加到索引爲 0 的位置上(也就是第一個),而原來索引爲 0 的A同窗,以及後面的全部同窗,向後移動一位code
5)刪除元素 pop()方法老是刪掉list的最後一個元素,而且它返回這個元素 要把X踢出list,先定位X的位置。因爲x的索引是2,所以,用 pop(2)
把x刪掉orm
6)替換元素
7)建立元組
tuple是另外一種有序的列表,中文翻譯爲「 元組 」。tuple 和 list 相似,可是,tuple一旦建立完畢,就不能修改了。圓括號替代方括號
正是由於用()定義單元素的tuple有歧義,因此 Python 規定,單元素 tuple 要多加一個逗號「,」,這樣就避免了歧義:
8)if語句根據縮進原則,相同縮進的代碼是爲統一代碼塊
縮進請嚴格按照Python的習慣寫法:4個空格,不要使用Tab,更不要混合Tab和空格,不然很容易形成由於縮進引發的語法錯誤。
9)if-else語句
語句嵌套
10)for循環 while循環
11)字典的語法
{}表示dic ()表示list 【】表示元組tuple
dic的訪問
dic特色查找速度快但佔用內存大且key不能重名,list速度慢可是佔用內存小
dict的第二個特色就是存儲的key-value序對是沒有順序的!
dict的第三個特色是做爲 key 的元素必須不可變
dictionary的更新
用for遍歷dict
for key in d
有時只關心key對於value並不關心此時用到set
索引set
因爲set存儲的是無序集合,因此咱們無法經過索引來訪問
set 的特色
set的內部結構和dict很像,惟一區別是不存儲valueset存儲的元素也是沒有順序的
set更新用函數set.sdd()
定義函數:在Python中,定義一個函數要使用 def 語句,依次寫出函數名、括號、括號中的參數和冒號:,而後,在縮進塊中編寫函數體,函數的返回值用 return 語句返回。
定義函數中的可變參數
對list進行切片(取指定元素)
倒敘切片 聯繫list支持倒序取值 L【-1】
切片包括list tuple dic和字符串均可以
什麼是迭代?==循環操做 Iteration
注意: 集合是指包含一組元素的數據結構,咱們已經介紹的包括:
1. 有序集合:list,tuple,str和unicode;
2. 無序集合:set
3. 無序集合而且具備 key-value 對:dict
索引的迭代
for index, name in enumerate(L):
運用enumerate函數(列舉 枚舉)
dic的迭代方法,迭代出value
那這兩個方法有何不一樣之處呢?
1. values() 方法實際上把一個 dict 轉換成了包含 value 的list。
2. 可是 itervalues() 方法不會轉換,它會在迭代過程當中依次從 dict 中取出 value,因此 itervalues() 方法比 values() 方法節省了生成 list 所需的內存。
3. 打印 itervalues() 發現它返回一個 <dictionary-valueiterator> 對象,這說明在Python中,for 循環可做用的迭代對象遠不止 list,tuple,str,unicode,dict等,任何可迭代對象均可以做用於for循環,而內部如何迭代咱們一般並不用關心。
若是一個對象說本身可迭代,那咱們就直接用 for 循環去迭代它,可見,迭代是一種抽象的數據操做,它不對迭代對象內部的數據有任何要求
同時迭代出key和value的方法
items函數的使用和iteritems函數的使用
for key,vaules in d.items()
print(key,':',values)
list的生成
條件過濾:
[x * x for x in range(a, b)]