python03——函式基礎
阿新 • • 發佈:2020-12-03
1.函式基礎
函式定義:
def 函式名():
程式碼塊
函式的呼叫:
函式名()
def print_info(): print("hello") pass print_info()
2.函式引數
def 函式名(引數列表):
def print_info(name,age,hight) print('%s年齡是%d歲'%(name,age)) print('%s體重是%dkg'%(name,hight)) print_info(yangh,12,33)
引數分類:
必選引數(也叫位置引數)——呼叫時,必須給實參
def sum(a, b): #形式引數:不佔記憶體地址 sum = a + b print(sum) sum(20,15) #實際引數:佔用記憶體地址的 sum() ##不能這麼寫,因為沒有給a、b傳值
預設引數(預設引數,必須放在引數列表的最後)
def sum(a=10,b=20) print(a+b) sum() #可以不賦值,會使用預設值 sum(1) sum(1,2)
def sum(b,a=2): def sum(a=2,b): ###錯
可變引數(當引數個數不確定時使用,比較靈活) *
def getComputer(*args): result=0 for item in args: result+=item print(result) pass getComputer(1) getComputer(1,2,3)
關鍵字引數(可變的) ** 字典型別,key值必須是字串
def keyFunc(**kwargs): print(kwargs) dicta={''name":'yh',"age":18} keyFunc(**dicta) keyFunc(name='lh',age=26)
組合使用:(可選引數得放在關鍵字引數之前)
def complexF(*args,**kwargs): ##(**kwarg,*args)會報錯 print(args) print(kwargs) complexF() #不會報錯 complexF(1,2,3,4,name='lh') #會自動識別自動填充
3.函式返回值
return後的程式碼不會被執行
def sum(a,b): sum=a+b return sum
print(sum(10,20)) ##會返回到呼叫的地方
def calc(num): r=0 i=1 while i<=num: r+=i i+=1 return r v=calc(10) print(v)
li=[] return li ###返回列表 return 1,2,3 ##返回元組 return {"name":"yh"} ##返回字典
4.函式的巢狀呼叫
在函式裡呼叫其他函式
def fun1(): print("start1") print("……………………") print("end1") pass def fun2(): print("start2") fun1() print("end2") pass fun2()
函式的分類:
有引數無返回值的、有引數有返回值的、無引數有返回值的、無引數無返回值的
鞏固:
1.寫函式,接收n個數字,求這些引數數字的和
2.寫函式,找出傳入的列表或元組的奇數位對應的元素,井返回-個新的列表
3.寫函式,檢查傳入字典的每一個value的長度如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。PS 字典中的value只能是字串或列表