python函數基礎(函數的定義和調用)

函數的定義python

python定義函數使用def關鍵字函數

return[表達式]語句用於退出函數,選擇性的向調用方返回一個表達式,不帶參數值的return語句返回nonespa

def 函數名(參數列表): 函數體

 

def get_money_fromATM(cardno,password,money): #密碼要求是6位字符串類型
    if type(password) is str and len(password)==6: print('密碼正確') else: print('密碼格式錯誤') #金額小於3000元的能被100整除的整數
    if type(money) is int : if money%100==0 and money<=3000: print('金額正確') else: print('金額格式錯誤,請從新輸入') get_money_fromATM(12412412412,'123456',2300) #運行結果
密碼正確 金額正確

 

#計算面積的函數
def z(x,y): i=x*y print(i) z(2,7) #運行結果:
14

 

def sum(x,y): z=x+y print('函數內',z) #調用的函數中沒有return表達式
z=sum(5,9) print('函數外',z) #運行結果
函數內 14 函數外 None

 

def sum(x,y): z=x+y print('函數內',z) return z #調用的函數中沒有return表達式
z=sum(5,9) print('函數外',z) #運行結果
函數內 14 函數外 14

可變參數3d

def sum(*lst): 參數前面加一個星號,表示這個參數是可變的,也就是說能夠接受多個參數,將這些參數構成一個元組,只能經過爲止參數傳參code

可變參數有兩種形式:對象

  • 位置可變參數 : 參數前加一個星號,參數構成一個元組,參數只能以 位置參數 的形式傳參
  • 關鍵字可變參數 : 參數前加兩個星號,參數構成一個字典,參數只能以 關鍵字參數 的形式傳參

當默認參數和可變參數一塊兒出現的時候,默認參數至關於普通參數blog

一般來講:字符串

  • 默認參數靠後
  • 可變參數靠後
  • 默認參數和可變參數不一樣時出現

keyword-only: 必須以Key->Value對的形式出現的,叫作keyword-onlyget

參數的傳遞class

 

 

 

 傳遞不可變對象實例

def jiaohuan(m,n): temp=m m=n n=temp return a=2 b=3
print(a,b) jiaohuan(a,b) print(a,b) #運行結果
2 3
2 3

 

調用函數時可以使用的正式參數類型:必需參數、關鍵字參數、默認參數、不定長參數

必需參數

  必需參數須以正確的順序傳入函數。調用時的數量不須和聲明時的同樣

  調用printme函數,必須傳入一個參數,否則會出現語法錯誤

def printme(str): "打印任何傳入的字符串"
    print(str) printme("調用printme函數") #運行結果
調用printme函數

 

關鍵字參數

  關鍵字參數和函數調用關係緊密,函數調用使用關鍵字參數來肯定傳入的參數值

  使用關鍵字參數容許函數調用時參數的順序與聲明時不一致,由於python解釋器可以用參數名匹配參數值

def printme(str): "打印任何傳入的字符串"
    print(str) printme(str="調用printme函數") #運行結果
調用printme函數

 

參數的默認值 

def inc(base,x=1): 給第二個參數設置一個默認值,如果不傳遞參數,則使用默認的參數值,如果傳遞參數,則使用傳遞的參數值

默認參數

  調用函數時,若是沒有傳遞參數,則會使用默認參數,默認參數只能放在參數列表的最後一個,但能夠有多個默認參數

def sum(name,age=50): print(name,age) name='白雲' age=45 sum(name,age) #運行結果
白雲 45

 

 

不定長參數

  你可能須要一個函數能處理比當初聲明時更多的參數,這些參數叫作不定長參數,聲明時不會命名

  加了星號的變量名會存放全部未命名的變量參數。若是在函數調用時沒有指定參數,它就是一個空元組,咱們也能夠不向函數傳遞未命名的變量

def printinfo(str,*varchar): '打印任何輸入的字符串'
    print('輸出:') print(str) for var in varchar: print(var) #調用函數printinfo
printinfo(10) printinfo(70,60,50,40,30) #運行結果
輸出: 10 輸出: 70
60
50
40
30

 

匿名函數

python使用laabda來建立匿名函數

所謂匿名,即再也不使用def語句這樣標準的形式定義一個函數

sum=lambda x,y:x+y print(sum(1,2)) #運行結果
3
相關文章
相關標籤/搜索