1. 程式人生 > >python的集合與函數

python的集合與函數

組織 集合類 adding src int() 支持 class 函數名 自定義

函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。

函數能提高應用的模塊性,和代碼的重復利用率。Python提供了許多內建函數,比如print()。但你也可以自己創建函數,這被叫做用戶自定義函數。

定義一個函數:

定義一個由自己想要功能的函數,以下是簡單的規則:

  • 函數代碼塊以def關鍵詞開頭,後接函數標識符名稱和圓括號()

  • 任何傳入參數和自變量必須放在圓括號裏。圓括號之間可以用於定義參數。

  • 函數內容以冒號起始,並且縮進。

  • return[表達式]結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。

eg: def dealnum (x,y):

if x>= y:

s = x*y

return s

函數的調用:

函數名()

函數定義時候不執行,函數必須在調用的時候傳遞參數才能夠執行。

函數的參數問題

1)必選參數: 形式參數:

eg:

def add(x,y): ------函數定義

return x+y

add(1,2) -----------函數調用

默認參數:

def sum(x,y=2) ----------函數定義

return x**y

sum (3) --------直接傳遞x的值,y值默認

可變參數:函數定義的參數個數是可以發生變化的,可變參數可以理解為在剛剛開始的時候裝入 了一個空的tuple

形式參數:def add(*args): --------------定義函數

sum = 0

for i in args:

sum += i

print sum

add(1,2,3,4,5,6,7) --------------args變量名指向了一個元組

關鍵字參數:關鍵字參數和可變參數類似,都可以接收參在數數量不確定的時候使用,但是關鍵字參數可以傳入含參數名的參數,就相當於是傳入了一個dict,這是關鍵字參數和可變參數的最大不同之處。

def dealperson(name,age,**other):

print name,age,other

dealperson("james",33,"paly"=basketball,"size"=114)

技術分享圖片

函數return問題:

在定義一個函數之後必須用關鍵字return來返回一個數值

請比較一下兩個式子:

技術分享圖片 技術分享圖片


這兩個函數一個在函數體中定義了return x+y, 一個則是直接print x+y,輸出結果表示,函數如果在沒有return時,會自動返回一個None;

返回多個值: 技術分享圖片


函數的作用域:

global 定義一個全局變量,在函數體內部只能定義一個局部變量。

技術分享圖片

函數的高級特性:叠代:

eg 請找出0到20之內所有偶數的平方:

技術分享圖片



集合:集合和列表和元組最大的區別就是在於集合有去重的作用,所以說集合不是一個重復的數據結構,還有可以判斷兩個集合之間是否有交集,並集,差集,是否子集等作用。

集合的定義:1)s = {1,2,3,4} --------此時的是一個集合,但是s={}時候s為一個字典類型。

2)s = set () --------直接通過工廠方法來賦值。

所有的數據類型通過轉化為集合類型就可以具有無重性:

eg:li=[1,2,3,4,4,3,2]

s = set(li) -------此時的s就是一個集合,具有無重性。

eg: li={1,2,3,4,3,2}

d = {}.fromkeys(li); ----------字典的去重。

集合和字典類似,是無順的,並且不能切片、索引、重復、也不支持連接等動作,但是支持叠代(for)、成員查找等動作。

集合的增、刪、改:

增加:s={1,3,4,5}

s.add(9) -------------通過add()函數直接給集合添加元素,

s1 = {"hello,world"}

s.update(s1) ---------------通過update()函數把兩個集合連接起來。

刪除:s.pop() ---------------可以理解為出棧

s.remove(1) ---------------刪除指定元素‘1’

s.discard() ----------------刪除集合s本身,如果s集合不存在將do nothing

s.clear() -----------------清空集合s中的所有元素

技術分享圖片

集合最大的作用就是去重性:

技術分享圖片

技術分享圖片

先定義集合,確保產生的數字沒有重復性,然後轉化為列表,通過li.sort()函數按照從下到打的順序排列好。





















python的集合與函數