自己學python的時候留下的一些筆記。
#函式的基礎知識
"""一.函式的引數
1.預設引數可以不用賦值,直接呼叫函式,但是要在定義的時候賦初值,
2.收集引數,可以防止不知道需要多少個引數,
例如: def test(*params):
print("引數長度是:",len(params));
print("第二個引數是:",params[1]);
test(1,"qhj",3.14,5,6,7,8)
引數是:8
第二個引數是:qhj
如果要寫成 :
def test(*params,exp):
print("...");
test(1,2,3,4,5,exp = 5);
這樣才不會報錯,或者使用預設引數 :
def test(*params, exp = 0):
二.函式與過程
1.python所有函式都會返回東西,如果沒有返回值,就返回none,
2.python可以返回多個值,那就是使用列表:
def back():
return [1,2,"qhj"]
這樣就會返回乙個列表
當然直接:
def back():
return 1,'qhj',3.14
這樣會返回乙個元組
三.函式與變數
1.python函式裡依然是有區域性變數。
2.python函式裡面可以隨便訪問全域性變數,但是在函式裡面修改全域性變數的時候,python會自動生成乙個和全域性變數名字相同,
但是「不一樣」的區域性變數。
3.如果想要在函式裡面改變全域性變數:
count = 10
def back():
global count #需要使用關鍵字
count = 5
print(count)
四.內嵌函式
1.函式巢狀的乙個例子:
def fun1():
print("this is first function")
def fun2():
print("this is second function")
fun2()
內部函式的作用域,都在外部函式內,比如只能在fun1()裡呼叫fun2()
2.閉包
defx():
def funy():
return x*y
return funy
呼叫的時候:
funx(8)(5)
403.內部函式呼叫外部函式的變數的時候
(1)可以將外部函式的變數變為列表,
(2)可以使用關鍵字:nonlocal x,
五.匿名函式
1.使用lambda函式定義函式:
lambda x : 2*x+1(前面時形參,後面是返回值)
這樣會返回乙個函式,例如:
g = lambda x : 2*x+1
g(5)
輸出11
2.過濾器
filter(function or none,可以迭代的變數),例如:
filter(none, [1,0,false,true])
list(filter(none, [1,0,false,true]))
[1,true](0,false被過濾了)
結合function:
def odd(x)
return x % 2
temp = range(10)
show = filter(odd, temp)
list(show)
[1, 3, 5, 7, 9]
所以過濾器就是:
只返回那些,經過乙個函式後,返回值是1的引數。(最後返回乙個序列)
filter(lambda x : x % 2,range(10))
3.map()
map(lambda x : x *2,range(10))
將會得到乙個序列,也就是0,2,4,6,8......
六.遞迴
1.設定遞迴的深度:
import sys
sys.setrecursionlimit(1000)
"""
python函式學習筆記
1.組合排列函式 要呼叫的包 itertools 用法 import itertools 1 product 笛卡爾積,有放回抽樣排列 用法 itertools.product abcd repeat 2 2 permutations 排列,不放回抽樣排列 用法 itertools.permutat...
部落格筆記 python函式學習
之前也學習過一段時間的python基礎知識,今天由於專案無法進行測試,閒來無事所以想重新溫故下。我天生對 不是很感冒才做的軟體測試,但是做久了感覺軟體行業是離不開 的,索性還是抽空涉獵點 相關的知識吧,畢竟一天在幹這行就要花心思去學習這行。今天簡單把python溫故的重點和以前覺得的難點在此記錄下 ...
python函式引數學習筆記
1 引數的傳遞是通過自動將物件賦值給本地變數名來實現的。函式引數 呼叫者傳送的 可能的 共享物件的引用值 所有的引數實際上都是通過指標進行傳遞的。作為引數被傳遞的物件從裡不自動拷貝。2 在函式內部的引數名的賦值不會影響呼叫者。在函式執行時,在函式頭部的引數名是乙個新的 本地變了,這個變數名時再函式的...