一.dictionary 字典
語法格式: {鍵:值}(即鍵值對)
實(shí)例:
mydict = {'name':'張三', 'age':18}
字典中值的添加:
當(dāng)給字典添加一個不存在的鍵的時候?yàn)樘砑?/p>
myDict = {'name':'張三'}
myDict['age'] = 18 # 將age:18,添加到myDict里
字典的值的修改:
當(dāng)給字段中已經(jīng)存在的鍵賦新的值的時候,是對鍵key的值進(jìn)行修改
myDict = {'name':'張三'}
myDict['name'] = '李四' # 將鍵key為name的值修改為李四
字典值的刪除:
字典中值的刪除是通過字典里的唯一的鍵進(jìn)行刪除
myDict = {'name':'張三'}
del myDict['name'] # 將key為name的刪除
使用dict() 將鍵值對的序列構(gòu)造成字典
# 使用dict()方法強(qiáng)轉(zhuǎn)為字典
myList = [('name', 'zs'), ('age', 18), ('sex', ‘男’)]
myList = [{'name','zs'}, {'age', 18}, {'sex', '男'}]
myList = [['name', 'zs], ['age', 18], ['sex', '男']]
print(dict(myList)) # {'name':'張三','age':18,'sex':'男'}
注意:
1> 字典是一種映射類型, 元素是鍵值對的形式
2>字典的鍵為不重復(fù)類型(可以重復(fù)直砂,但是后面的值會覆蓋前面的值)
3>創(chuàng)建一個空字典使用{}
4>字典的取值是通過唯一的key,而不是通過索引的偏移量
字典的常用函數(shù)
函數(shù)名 | 函數(shù)說明 |
---|---|
myDict.items() | 返回一個能被for循環(huán)遍歷的列表,每個元素為鍵值組成的元組 |
myDict.clear() | 清空字典 |
myDict.keys() | 獲取字典所有的鍵 |
myDict.values() | 獲取字典所有鍵對應(yīng)的值 |
myDict.pop(key) | 彈出key對應(yīng)的值, 并返回,若字典為空, 執(zhí)行會報錯 |
myDict.popitem() | 彈出字典最后一個鍵值對, 以元組的形式返回,若字典為空會報錯 |
myDict.copy() | 字典的淺拷貝 |
copy.deepcopy(myDict) | 字典的深拷貝 |
二. 運(yùn)算符
(一) 算數(shù)運(yùn)算符
包括:
+運(yùn)算, -運(yùn)算, *運(yùn)算, /運(yùn)算, %運(yùn)算
**:x的y次方
// 整除運(yùn)算(如果參與運(yùn)算的x和y都為整形, 結(jié)果為整形,x和y都一個為浮點(diǎn)型結(jié)果為浮點(diǎn)型)
(二) 比較運(yùn)算符
==等于, != 不等于, >大于, <小于, >= 大于等于, <=小于等于
# python可以多個值一起比較大小
print(1<10<5) # False
print(1 < 3 < 5) # True 3大于1且小于5
(三) 賦值運(yùn)算符
在python中賦值運(yùn)算符包括:+=, -=, *=, /=, %=, **=, //=
(四) 邏輯運(yùn)算符
and | 邏輯與,兩側(cè)都為真才為真 | a and b |
---|---|---|
or | 邏輯或, 一側(cè)為真就為真 | a or b |
not | 邏輯非, 真為假, 假為真 | not a |
實(shí)例:
# 如果第一側(cè)為真,會返回第二側(cè)的值
print(10 and 20) # 20
print(10 and 0) # 0
print(10 and False) # False
# 如果第一側(cè)為假浩习,返回假的值
print(0 and 2) # 0
print(3>5 and 1>2) # False
print(1<2 and 3>2) # True 兩側(cè)為真
#對or的操作
# 如果前面為真静暂,返回前面的值, 前面為假返回后面(第二側(cè))對應(yīng)的值
print(1 or 2) #1
print(True or 5) # True
print(0 or 2) # 2
print(False or 0) # 0
print('a' or 0) # a
(五) 成員運(yùn)算符
in | 值在指定的序列中返回真 |
---|---|
not in | 值不在指定的序列中返回真 |
(六) 身份運(yùn)算符
is | 判斷兩個標(biāo)識符是否引用同一個對象 |
---|---|
is not | 判斷兩個標(biāo)識符是否不是引用同一個對象 |
實(shí)例:
x = 3
y = 3
z = 4
# 通過id() 方法查看變量所存儲得到地址編號
print(id(x)) # 一個地址編號假設(shè)為138241111
print(id(y)) # 同上138241111
print(id(z)) # 與上面的不同假設(shè)為138241122
print(x is y) # True
print(x is z) # False
==與is的區(qū)別:
==是判斷兩個對象是否相等,is是判斷兩個對象是否等同(地址編號相同谱秽,引用同一個對象)
(七) 位運(yùn)算符
^ | 按位異或當(dāng)兩位不同時為1 |
---|
實(shí)例(交換兩個變量的值, 不使用第三個變量):
# 法一:
x = 2
y = 3
x,y = y,x
print(x,y) # 3 2
# 法二:使用異或
a = 2
b = 3
a = a^b # 二進(jìn)制進(jìn)行異或 0001
b = a^b # 0010
a = a^b # 0011
print(a,b) # 3 2
三. 流程循環(huán)控制語句
(一) 分支結(jié)構(gòu)
1. 單一分支結(jié)構(gòu)
語法結(jié)構(gòu):
if 條件表達(dá)式:
代碼塊(條件為真執(zhí)行)
2. 雙向分支結(jié)構(gòu)
語法結(jié)構(gòu):
if 條件表達(dá)式:
代碼塊(條件為真執(zhí)行)
else:
代碼塊(條件為假執(zhí)行)
3. 多向分支結(jié)構(gòu)
語法結(jié)構(gòu):
if 條件表達(dá)式:
代碼塊(條件為真執(zhí)行)
elif 條件表達(dá)式2:
代碼塊(條件2為真執(zhí)行)
elif 條件表達(dá)式3:
代碼塊(條件3為真執(zhí)行)
......
else:
代碼塊(條件為假執(zhí)行)
4. 巢狀分支結(jié)構(gòu)
語法結(jié)構(gòu):
if 條件表達(dá)式:
if 條件表達(dá)式2:
條件2為真的代碼塊
else:
條件2為假執(zhí)行
else:
if 條件表達(dá)式3:
條件3為真的代碼塊
else:
條件3為假執(zhí)行
(二) 循環(huán)結(jié)構(gòu)
1. for 循環(huán)
for可以遍歷任何的序列包括字符串,列表,元組
語法結(jié)構(gòu):
for 接收參數(shù)的變量 in 變量的值:
循環(huán)的代碼塊
注意:
當(dāng)添加不滿足的時候, 跳出循環(huán)體,
continue: 跳出本次循環(huán), 繼續(xù)下一次循環(huán)
break: 跳出循環(huán)
實(shí)例:
for i in range(1, 10)
if i == 3:
continue # 跳出本輪循環(huán), 繼續(xù)下一次循環(huán)
for i in range(1,10)
if i == 3:
break # 跳出循環(huán)
2. while 循環(huán)
主體結(jié)構(gòu):
while 條件表達(dá)式:
循環(huán)體
死循環(huán)
while True: # 表達(dá)式一直為真
代碼塊
補(bǔ)充:
在python中else可以和while,for等連用
實(shí)例:
while 條件:
循環(huán)體
else:
print("循環(huán)結(jié)束的時候走了else, 而且for循環(huán)一樣的")