python 集合、函數
- 2020 年 1 月 14 日
- 筆記
*集合:
set:持有一系列元素,但是set元素沒有重複,並且無序
如何創建:set()並傳入一個list,list的元素將作為set 的元素。
s=set(['a','b','c']) print(s) //set(['a', 'c', 'b']) print(len(s)) //3
如何訪問:用in操作符判斷有沒有
=([,,,]) ( )//True
set的特點:
1.內部結構和字典很像,唯一區別是不存儲value
=([,,,,,,]) x1=x2=x1 : () (x2 ): ()//ok
遍歷set:
通過for循環來遍歷set
=([(,),(,),(,)]) x : x[],,x[]
//lisa : 85 adma : 95 bart : 50
更新set
兩件事:1把新的元素添加到set中
2 把已有元素從set中刪除
add():添加元素 sets.add(新元素),如果添加已有元素,不報錯,但也不會加進去
s=set([1,2,3]) 添加
eg:
s=set([1,2,3]) s.add(4) print(s)//set([1, 2, 3, 4])
remove():刪除set中的元素
sets.remove(刪除的元素)
用add()可以直接添加,用remove()前需要先判斷
*函數
什麼是函數:是一大塊可重用的程式碼,它是有名稱的程式碼塊,接受輸入、提供輸出並 可存儲在文件中供以後使用。
調用函數
函數分為兩大類:自定義函數、內置函數
a. pow(x,y) 計算x**y x的y次方
通過 ()去調用函數
print(pow(2,5)) //32
函數沒有任何輸入(沒有參數),也必須在函數後加()
如果要不加(),會指向一個函數。
b. cmp(x,y),如果x<y ,返回-1,如果x==y,返回0,如果x>y 返回1 [2,34,1,5,98]
c. sum(x,y,...) print sum([1,6])
d. append() 用於在列表末尾添加新的對象
list.append(obj) -obj添加到末尾的對象
e.不返回值的函數 print
=[] x=x<=: .append(x*x) x=x+(()) //42925 如果函數沒有返回值,則會返回none
python中給函數賦值,會導致無法訪問原來指向的函數,要恢復原樣,需要重啟python
自定義函數:使用def語句,依次寫出函數名、括弧、括弧中的參數和:,然後在縮進塊中編寫 函數體,函數的返回值用return語句返回。
函數名:只能包含字母、數字和下劃線,不能以數字開頭,指出其用途的簡單名稱。
def names(x): 函數體 return
names(參數)
注意:函數體內部的語句在執行時,一旦執行到return語句時,函數就執行完畢,並將結果 返回。因此函數內部通過條件判斷和循環可以實現非常複雜的邏輯 如果沒有return語句,函數執行完畢後會返回結果,結果能為None return 也返回None return return 可以放在函數任何地方,通常末尾。
變數的作用域: 函數帶來一個重要的問題就是作用域,變數的作用域,指的是它在程式的哪些地方可以訪問 或可見。 分為兩種:局部作用域,全局作用域 局部變數,全局變數
f/elif/else try/execpt/final for/while 不會汲到變數作用域的更改,它們程式碼塊中的 變數,在外部也是可以訪問的。
變數的搜索路徑:本地變數>>全局變數
修改局部變數為全局變數:global
局部變數的生存期:局部變數只能在函數中使用,函數結束時,局部變數將被自動刪除
全局部量:在函數外聲明的變數,程式中的任何程式碼和任何函數都可以讀取,然而在函數 中給全局變數重複賦值時需要特別小心
關鍵字: 有特殊含義的單詞,又叫保留字,是電腦里預先定義好的,有特別意義的標識符
python中的關鍵字包括如下:關鍵字不能用作函數名
and del form while as elif global with assert else if pass break import print class in exec raise continue finally is return for lambda try 參數:調用函數時可使用的正式參數類型 1.必備參數 2.關鍵字參數 3.默認參數 4.不定長參數
1.必備參數:以正確的順序傳入函數,調用時數量必須和聲明時的一樣
練習:定義一個函數,顯示姓名和年齡
2.關鍵字參數:
和函數調用關係緊密,函數調用使用關鍵字參數來確定傳入的參數值, 使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,python解釋器能夠用參數名 匹配參數值。
3.默認參數:
調用函數時,默認參數的值如果沒有傳入,則被認為是默認值
4.不定長參數
可能需處理一個函數比當初聲明時更多的參數,這些參數叫做不定長參數 * 會存放所有未命名的變數參數,
def 函數名(*info)
匿名函數:
用lambda 來創建匿名函數 lambda 的主體是一個表達式,而不是程式碼塊 注意:匿名函數只能包含一個語句
語法:
var = lambda arg1,arg2… : (expression(表達式))
python 模組
保存一個python程式碼的文件,模組能定義函數、類和變數,模組里也能包含可執行的程式碼
import語句:引入模組
語法:import module(模組名稱)…
注意:一個模組只會被導入一次,不管你執行多少次import .這樣可防止導入模組一遍又一遍執行