二.字典
1.格式:變量名={key1:value,key2:value}
2.特點:有序,不可重復,可變,任意類型,性能不好
3.根據鍵訪問
1.z={key1:value,key2:value}
print(z["key"])
2.z={key1:value,key2:value}
print(z.get("name"))
4.修改
1.有對應的key
z["key"]="value"
print(z)
2.沒有對應的key是新增數據到末尾
5.添加
z["key"]="value"
6.刪除
1.del
del z["key"]
print(z)
2.clear:清空字典里的內容
z.clear()
print(z)
7.長度
print(len(z))
8.字典循環
1.取出key
for i in z.keys():
?? print(i)
2.取出value
for i in z.values():
?? print(i)
3.取出key和value方法一
for i,j in z.items():
?? print(i,j,sep=":")
4.取出key和value方法二
for i in z.keys():
?? print(i,z[i],sep=":")
5.擴充的
for i,j in enumerate(z):
?? print(i,j,z[j])
十二單元 集合和函數
一、集合
1.集合的特點:無序、唯一、去重
2.格式:j={元素,元素}
3.添加:
1.j.add(元素)
2.
j={1,"vfd",5,2,"vedfbrgb"}
i=["小何","真美",48]
j.update(i)
4.刪除
1.remove:刪除集合中的元素 如果有直接刪除 如果沒有程序報錯
j.remove(元素)
2.pop:都是數字,刪最小的,其余升序排序;
? 都是非數字,隨機刪,其余隨機排序;
數字和非數字,隨機刪,刪數字的話就是最小的,刪非數字的話,隨機刪
注意:如果集合中沒有元素,則報錯
j.pop()
3.discard:如果元素存在直接刪除 如果元素不存在不做任何操作
j.discard(元素)
5.交集
連接多個集合,輸出相同的元素(set可用)
? ? j={1,"vfd",5,2,"vedfbrgb"}
?? ? ? i={5,2,"小","美",48}
?? ? ? a=j&i
?? ? ? print(a) ? #{5,2}
6.并集
去重,得到全部集合中全部的元素
? ? j={1,"vfd",5,2,"vedfbrgb"}
?? ? ? i={5,2,"小","美",48}
?? ? ? a=j|i
?? ? ? print(a) ? #{1, 2, 5, 48, '真', '小', 'vfd', 'vedfbrgb'}
7.公共方法
1.加(列表和元祖可用)
j=(1,"vfd",5,)
i=(5,48)
print(j+i)? #(1, 'vfd', 5, 5, 48)
2.乘(列表和元祖可用)
j=(1,"vfd",5,)
i=(5,48)
print(j*2)? #(1, 'vfd', 5, 1, 'vfd', 5)
3.包含(in)(列表和元祖和字典可用)
j=(1,"vfd",5,)
print(1 in (j)) ? #True
j=(1,"vfd",5,)
print(6 in (j)) ? #False
4.不包含(no in)(列表和元祖和字典可用)
j=(1,"vfd",5,)
print(1 not in (j)) ? #False
j=(1,"vfd",5,)
print(6 not in (j)) ? #True
8.內置函數
長度:print(len(變量名))
最大值:print(max(變量名))
最小值:print(min(變量名))
del:第一種:del 變量名
第二種:del(變量名)
二、函數
1.什么是函數
其實就是方法、功能
2.函數的定義和調用
格式:
def函數名():
執行語句
函數名()
3.函數參數
1.正常的
defadd2num():
a=11
b=22
c=a+b
printc
2.位置參數
def函數名(參數1,參數2):
代碼塊
函數名(值1,值2)
3.關鍵字參數
def函數名(參數1,參數2):
代碼塊
函數名(參數1=值1,參數2=值2)
案例:deffun(a,b):
print("a:",a)
print("b:",b)
fun(a=2,b=3)
案例二:deffun(a,b):
print("a:",a)
print("b:",b)
fun(3,b=2)
注意:位置參數一定要在關鍵字參數之前
4.缺省參數(默認參數)
案例一:
defprintinfo(name,age=20):
print("name:",name)
print("age:",age)
printinfo(name="anfly")
#name: anfly
#age: 20
案例二:
defprintinfo(name,age=20):
print("name:",name)
print("age:",age)
printinfo(name="anfly",age=10)
#name: anfly
#age: 10
注意:缺省參數一定要位于位置參數的最后面
5.不定時參數
*args:為元組
**kwargs:為字典
defprintinfo(*args,**kwargs):
print("args:",args)
print("kwargs:",kwargs)
printinfo(1,2,3,a=5,b=6)
#args:1,2,3
#kwargs:a=5,b=6
6.參數位置順序
deffun(位置參數,*args,缺省參數,**kwargs):
代碼塊
fun(參數值)
案例:
deffun(a,b,*args,c=6,**kwargs):
print("a=",a)
print("b=",b)
print("args=",args)
print("c=",c)
print("kwargs=",kwargs)
fun(1,2,3,4,5,9,c=1000,f=45,cf=65)
#a= 1
#b= 2
#args= (3, 4, 5, 9)
#c= 1000 ? 如果下面的fun不給c=1000的話下面輸出的c的值就為6
#kwargs= {'f': 45, 'cf': 65}
4.函數返回值
def fan(a,b): ? ?
? return a+b
print(fan(1,2)) ? #3
5.函數類型
1. 無參數,無返回值
2. 無參數,有返回值
3. 有參數,無返回值
4. 有參數,有返回值
6.匿名函數
lambda函數也叫匿名函數,即函數沒有具體的名稱
案例一:
sum=lambda a,b:a+b
print(sum(1,2))? #3
案例二:
sum=lambda a,b:100
print(sum(1,2))? #100
三、變量
1.局部變量
# 局部變量
def jv(): ?
? ? a=3
? ? print(a)
def jv1(): ? ?
? ? a=99
? ? print(a)
jv()? ? #3
jv1() ?? #99
2.全局變量(就近原則)
a="全局變量"
def jv(): ? ? ?
? ? print(a)
def jv1(): ? ?
? ? a=99
? ? print(a)
jv() ? #全局變量
jv1()? #99
3.局部變量升成全局變量
def jv(): ?
? ? a=3
? ? global b
? ? b="我也是全局變量"
? ? print(a)
def jv1(): ? ?
? ? a=99
? ? print(a)
? ? print(b)
jv()? ? #3
jv1()? #99 #“我也是全局變量”