標籤:使用 小數 alpha name strong 通過 預設 一個 解構
1 邏輯運算 and,or, not
(1)在沒有()的情況下not 優先順序高於 and,and優先順序高於or,即優先順序關係為( )>not>and>or,同一優
先級從左往右計算。
(2)計算下面例題的運算結果
1 3>4 or 4<3 and 1==1 #False2 1 < 2 and 3 < 4 or 1>2 #True3 2 > 1 and 3 < 4 or 4 > 5 and 2 < 1# True4 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 #False5 1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #False6 not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #False
總結: x or y , x為真,值就是x,x為假,值是y;x and y, x為真,值是y,x為假,值是x。
or找真,and找假
2 python基礎資料類型
(1)str
~~切片文法:str[start:end:step] start: 起始位置,end: 結束位置,step:步長
~~切片規則:顧頭不顧尾
~~str 字串操作:
1 ret6 = s13.find("tory") # 尋找‘tory‘的位置, 如果沒有返回-12 print(ret6)
3 ret8 = s13.index("sylar") # 求索引位置. 注意. 如果找不到索引. 程式會報錯
# 條件判斷s14 = "123.16"s15 = "abc"s16 = "[email protected]"# 是否由字母和數字組成print(s14.isalnum())print(s15.isalnum())print(s16.isalnum())# 是否由字母組成print(s14.isalpha())print(s15.isalpha())print(s16.isalpha())# 是否由數字組成, 不包括小數點print(s14.isdigit())print(s14.isdecimal())print(s14.isnumeric()) # 這個比較牛B. 中文都識別.print(s15.isdigit())print(s16.isdigit())
(2)列表 list
# 迭代添加lst = ["王志文", "張一山", "苦海無涯"]lst.extend(["麻花藤", "麻花不疼"])print(lst) #[‘王志文‘, ‘張一山‘, ‘苦海無涯‘, ‘麻花藤‘, ‘麻花不疼‘]
# 切片修改
lst[1:4:3] = ["麻花藤", "哇靠"] # 切片修改也OK. 如果步長不是1, 要注意. 元素的個數print(lst)
#排序lst = [1, 11, 22, 2]lst.sort() # 排序. 預設升序print(lst)lst.sort(reverse=True) # 降序print(lst)#反轉lst = ["太白", "太黑", "五色", "銀王", "日天", "太白"]print(lst)lst.reverse()print(lst)l = len(lst) # 列表的長度print(l)
注意,嵌套的多層列表採用降維操作.一層一層的看就好.
(3)元組 tuple
元組: 俗稱不可變的列表.又被成為唯讀列表, 元組也是python的基礎資料型別 (Elementary Data Type)之一, 用小括弧括起來, 裡面可以放任何資料類型
的資料, 查詢可以. 迴圈也可以. 切片也可以. 但就是不能改.關於不可變, 注意: 這裡元組的不可變的意思是子項目不可變. 而子項目
內部的子項目是可以變, 這取決於子項目是否是可變對象
tu = (1, "哈哈", [], "呵呵")# tu[2] = ["fdsaf"] # 這麼改不行tu[2].append("麻花藤") # 可以改了. 沒報錯tu[2].append("王劍林")print(tu)
注意,元組中如果只有一個元素. 一定要添加一個逗號, 否則就不是元組.
(4)字典 dict
字典中的key必須是可雜湊的不可變的資料,dict儲存的資料不是按照我們添加進去的順序儲存的. 是按照hash表的順序儲存的. 而hash表不是連續的. 所以不能進行切片工作.
它只能通過key來擷取dict中的資料,
#字典的修改dic = {"id": 123, "name": ‘sylar‘, "age": 18}dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}dic.update(dic1) # 把dic1中的內容更新到dic中. 如果key重名. 則修改替換. 如果不存在key, 則新增.print(dic)print(dic1
#利用items()解構print(dic.items()) # dict_items([(‘id‘, 123), (‘name‘, ‘sylar‘), (‘age‘, 18), (‘ok‘, ‘科比‘)]) 這個東西也是list. 只不過list中裝的是tuplefor key, value in dic.items(): # ?? 這個是解構print(key, value)# 解構a, b = 1, 2print(a, b)
嵌套的字典也採用降維操作.
3 小資料池
小資料池(常量池): 把我們使用過的值儲存在小資料池中.供其他的變數使用.
小資料池給數字和字串使用, 其他資料類型不存在.
對於數字: -5~256是會被加到?小資料池中的. 每次使?用都是同?一個對象.
對於字串串:
1. 如果是純文字資訊和底線. 那麼這個對象會被添加到小資料池
2. 如果是帶有特殊字元的. 那麼不會被添加到小資料池. 每次都是新的
3. 如果是單?一字母*n的情況. ‘a‘*20, 在20個單位內是可以的. 超過20個單位就不會添加
到小資料池中
注意(一般情況下): 在py檔案中. 如果你只是單純的定義?個字串串. 那麼一般情況下都是會
被添加到小資料池中的. 我們可以這樣認為: 在使用字串的時候, python會幫我們把字串進行緩衝
, 在下次使?的時候直接指向這個字串即可. 可以節省很多記憶體.
python基礎知識整理