pass的作用:
pass語句表示一個空的語句塊,僅作為占位,執行后沒有任何效果
用於待開發的代碼
編寫函數的原則
a.函數設計盡量短小
b.函數聲明要做到合理、簡單、易懂
c.函數設計要考慮向下兼容
d.一個函數只做一件事,盡量保證函數語句粒度的一致性
函數調用參數的傳遞方式是值傳遞還是引用傳遞?
python參數傳遞采用的是“傳對象引用”的方式。這種方式相當於傳值和傳引用的一種綜合。
如果函數傳遞的是可變對象(比如字典、列表)的引用,是可以修改原對象的原始值---相當於通過“傳引用”來傳遞對象;
如果函數傳遞的是不可變對象(比如字符串,數字和元組)的引用,就不能修改原對象的值--相當於通過“傳值”來傳遞對象
如何在function里面設置全局變量
global 設置全局變量
函數的傳遞參數的方式
調用函數是可使用的參數類型
必備參數
關鍵字參數
默認參數
不定長參數
必備參數:必備參數必須以正確的順序傳入函數,調用時的數量必須和聲明時參數的數量一致
def printstr(s): return s print(printstr("I love python"))
關鍵字參數:函數調用使用關鍵字參數來確定傳入的參數值
關鍵字參數與位置無關
def func(a,b,c): return a+b+c print(func(1,c=5,b=2))
默認參數:調用函數時,默認參數的值如果沒有傳入,則被認為是默認值
默認參數必須指向不可變參數
def printinfo(name,age =15): print("name:",name) print("age:",age) return print(printinfo("wulaoshi")) print(printinfo("wulaoshi",30))
不定長參數也叫缺省參數
缺省參數:*arg 函數在調用的時候自動組裝成一個tuple
def f(*args): for i in args: print(i) f(1,2,3,4,5)
缺省參數:**kw 函數在調用的時候自動組裝成一個dict
def f(a,b,**kw): print(type(kw)) for k,v in kw.items(): print(k,v) f(1,2,c=3,d=4)
#總結:
*arg:表示把可變的多個參數,轉換成一個元組
**kw:表示把可變的多個命令參數,轉換成一個字典
#練習:請使用**kw的方式,把可變的所有參數算個乘積
def func(a,b,**kw): result = a * b for value in kw.values(): result *= value return result print(func(1,2,c=3,d=4,e=5))
#練習2:同時使用*arg和**kw算下字母的長度之和,注意所有參數均使用字符串,字符串都是字母
def Mylen(*arg,**kw): result = 0 for i in arg: result += len(i) for value in kw.values(): result += len(value) return result print(Mylen("abc","cdef","w",w="234",q="1000"))