python -- 函數、集合
1、集合
集合也屬於一種數據類型,類似於list,具有無序、去重的特點,即集合裏沒有重復的數據。
通過{}來定義集合,用set()來強制轉換成集合。
1 list = [1,2,2,4,5,3,2] #定義列表 2 s_list = set(list) #強制轉換為集合 3 print(s_list) 4 5 s_list_2 = {1,2,3,3,4,5} #通過{}直接定義集合 6 print(s_list_2)
集合操作
set1.intersection(set2) 交集:兩個集合都有
set1.union(set2) 並集:兩個集合所有合並,自動去重
set1.difference(set2) 差集:兩個集合,其中一個有,即集合1有,集合2沒有
set3.issubset(set1) 子集:set3是否為set1的子集
set1.issuperset(set3) 父集:set1是否為set3的父集
1 set1 = {1,2,3,4,5,6} 2 set2 = {2,3,4,7,8} 3 set3 = {5,6} 4 5 print(set1.intersection(set2)) #交集 6 print(set1.union(set2)) #並集 7 print(set1.difference(set2)) #差集,set1有,set2沒有 8 print(set3.issubset(set1)) #子集,set3是否為set1子集 9 print(set1.issuperset(set3)) #父集,set1是否為set3的父集 10 11 set1.add(7) #添加元素 12 set1.update([77,66,66]) #添加元素 13 set1.remove(77) #刪除元素,若不存在會報錯 14 set1.pop() #隨機刪除元素,並返回刪除的元素 15 set1.discard(2) #刪除元素,若存在,則刪除,不存在則不做處理
2、函數
函數是一組語句的集合, 通過函數名封裝起來,用到時直接調用即可。
函數定義
定義函數用def關鍵字,後面跟函數名,註意函數名不能重復
1 def fun(): #定義一個函數,後面是函數名 2 print("Hello World") #函數體
函數參數
函數的參數有形參、實參之分,形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。
因此,形參只在函數內部有效。實參可以是常量、變量、表達式、函數等,無論實參是何種類型的量,在進行函數調用
時,它們都必須有確定的值,以便把這些值傳送給形參。函數調用結束返回主調用函數後則不能再使用該形參變量。
1 def plus(a,b): #a,b為形參 2 print(a+b) 3 plus(2,3) #2,3為實參
形參
分為位置參數、默認參數、可變參數、關鍵字參數四種;
位置參數就是按照參數位置進行傳參,如下面例子的a,b就是位置參數,位置參數是必傳參數
默認值參數就是在定義形參時給定一個默認值,若指定默認值,則默認值參數為指定值,若未指定默認值,則按默
認值傳參;
可變參數的參數是不固定的,可變參數用【*args】表示,可變參數必須在位置參數和默認值參數後面,是非必傳參數
關鍵字參數用【**kwargs】表示,需要用關鍵字傳參,也是非必傳參數;
1 def regedit(name,sex,age=18,*args,**kwargs): 2 print(name,sex,age=18,*args,**kwargs) 3 regedit("bob","male","score","addr",phone="137xxxxxx")
函數返回值
函數都有返回值,若未在函數裏指定返回值,則在執行完返回none,函數也可有多個返回值,並存入一個元組
函數返回值使用return,函數遇到return就立即結束
1 def plus(a,b): 2 c = a + b 3 return c,a,b 4 print(plus(2,3)) #返回一個元組(5, 2, 3)
3、局部變量和全局變量
局部變量只在函數內部生效,全局變量在整個程序都生效,定義愛程序最前面的都是全局變量,在函數中修改的話,需要
使用【global】關鍵字聲明,如果是局部變量,則不需加【global】
1 name = ‘marry‘#字符串全局變量 2 names = []#list全局變量 3 print(name) 4 print(names) 5 6 def test(): 7 global name #修改name的值就需要用global關鍵字 8 name = ‘Sriba‘ 9 names.append(name)#修改全局變量names的值 10 return names 11 test()調用函數 12 print(‘修改後‘,name) 13 print(‘修改後names‘,names)
python -- 函數、集合