python學習之函式

2021-07-24 18:41:46 字數 2468 閱讀 4526

一、函式   注:當乙個函式名字由兩個單詞組成的時候 ,第二個單詞的首字母大寫(統一)

當我們定義乙個函式的時候  用def語句  

def 函式名(引數列表,可以沒有引數):   比如

i=1j=2

def add(a,b):

return a+b

print add(i,j)

二、關於函式形預設引數  

注:假如函式是有形參的 ,則可以在宣告函式的時候給形參設定預設值,這樣我呼叫該函式時不給該函式形參也是可以的 

比如 def add(a=0,b=0):

return a+b

add() 不會出錯 

或者 def add(a,b=0)  呼叫的時候add(2) 則a=2  b使用預設的值 即 b=0

如果是 def add(a=0,b)   呼叫的時候add(2) 是錯誤的。因為 對於這個呼叫a=2,然而b並沒有預設值所以提示出錯

結論:對於形參 預設順序一定是從右向左定義的 

加入def add(a=1,b=2): 如果想只給形參b賦值 而a使用預設形參 則可以add(b=3)

三、可以用global 宣告乙個變數為全域性變數。即global  x    x=100(注意 是宣告 不能global x=100)

當然啦,在程式函式體外面的變數都是全域性變數。只不過是說可以在函式體內global 乙個變數為全域性變數,但是該函式必須呼叫該變數才能生效。

四、函式返回值   函式預設返回none

五、向函式傳元祖和字典

def fun(x,y):

print x,y

假如 t=(1,2)  fun(t)會提示出錯的 形參個數不匹配 

fun(t,4) 這樣是可以的 會輸出(1,2)  4

注:加入某個元祖的資料剛好和函式的形參一一對應,即引數個數匹配,則可以這樣將元祖的資料作為函式的引數:t=(1,2)    fun(*t) //沒錯 在元祖前面加乙個星號即可

對於字典來說假如dic=  def func(name,age):  則可以這樣將字典資料作為函式的引數 func(**dic) ,(注意,字典的鍵值名稱一定要和函式形參名稱一樣)

六、處理多餘實參。即實參個數對於形參個數

def func(x,*args):

print x

print args (在這裡args其實是被當做元祖了)

比如 func(1)  輸出1 () func(1,2,3,4)會輸出 1 (2,3,4)

對於字典  假如

def func(x,**args):

print  x

print args

假如 func(1,y=2) 則會輸出 1 (注意,有對映關係的才是字典 比如a=1,name="phf"之類的)

假設 def func(x,*args,**dics)  print x print args print dics

呼叫函式時 func(1,2,『a』,'xiaoli',『c』,y="phf",m=24) 則是x=1 將(2,『a』,'xiaoli',『c』)當做元祖  而y='phf' 和m=23當做字典

七、匿名函式 :省去定義函式名字了  。。

注意、 定義格式為  ;

lambda 引數1,引數2(引數個數隨意):返回值      //冒號前面是引數 後面是返回值  

比如 func=lambda x,y,z:x*y*z   呼叫該函式func(1,2,3) 輸出6

八、reduce 內建函式

比如reduce(lambda x,y:x*y,[1,2,3,4]) 輸出1*2*3*4

或者 比如

def func(x,y) :

return x*y

l=[1,2,3,4]

reduce(func,l)輸出1*2*3*4=24

九、switch語句   注意:python並沒有實現switch語句 但是可以用字典來實現

補充 :對於字典 有幾個方法經常用到 比如  dd= 

dd.get(key) 獲得key對應的value值  dd.keys() 獲得字典的key列表  dd.values()獲得字典的值列表

下面通過字典來實現switch 結構

def add(a,b):

return a+b

def minu(a,b):

return a-b

乘除法這裡不寫了

dic=

則 dic.get('+')  表示的是字典裡'+' 對應的value值,即 add ,然而add在這裡指的是add這個函式  因此本質上是呼叫add這個函式

因此可以想下面這樣呼叫函式

dic.get('+')(3,2)  結果是3+2=5

或者可以這樣直接在字典裡面實現分支結構

dic={

'+':x+y,

'-':x-y,

'*':x*y,

'/':x/y

print  dic.get(『+』) 即可

Python學習之函式

0 引論 函式是實現 復用的主要途徑之一,而且函式的使用也可以使得程式更加容易理解,更加規範化。程式很多時候並不是給計算機的,而是給人看的。這裡總結一下python中的函式的應用 1 函式 首先python中的函式的格式是怎樣的。def 函式名 形參 函式體 下面是乙個計算fibonacci數列的函...

python學習之函式

抽象 斐波那契數列 fibs 0,1 for i in range 10 print fibs fibs 0,1 i 2 while i 20 i 1 print fibs 使用callable判斷函式是否可以呼叫 import math x 1 y math.sqrt print callable...

Python學習 之 函式

概念高階用法 語法 關鍵字 函式名 引數列表 函式體引數順序 位置引數 a,b,c 未知數量位置引數,args,接收進函式內的型別為 tuple 關鍵字引數 key none 未知關鍵字引數,kwargs,接收進函式內的型別為 dict 順序 位置引數 args 關鍵字引數 kwargs deffu...