1. 程式人生 > >python -- 函數、集合

python -- 函數、集合

phone mes 程序 無序 隨機 hone 函數返回值 字符串 修改

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 -- 函數、集合