python函數(二)

#6.傳遞任意個數的參數;
#在定義函數時,若參數名前面使用「」,則表示可接受任意個數的參數,這些參數保存在一個元祖中。
#定義函數,
表明b是一個元祖,能夠接受多個參數
def add(a,*b):
s=a
#用循環迭代元祖b中的對象。
for x in b:
#累加
s+=x
#返回累加的結果。
return s
#調用函數輸入兩個參數求和,輸出結果。
res=add(1,2)
print("兩個參數求和結果:",res)python

#調用函數輸入3個參數求和,輸出結果。

res=add(1,2,3)
print("三個參數求和結果:",res)ide

#調用函數輸入5個參數求和,輸出結果。

res=add(1,2,3,4,5)
print("五個參數求和結果:",res)函數

#7.必須經過賦值傳遞的參數
#python容許使用必須經過賦值傳遞的參數。
#b是可變參數,則後面跟的參數c在調用傳值的時候,必須指明參數名。
def add(a,
b,c):
s=a+c
for x in b:
s+=x
return s
#調用函數,形參c未使用賦值傳遞,則出錯。
res=add(1,2,c=3)
print(res)
#正確使用方式,在調用的時候,必須指明參數c.
#另外,帶*號的參數也能夠省略,表明傳遞一個空元祖。
res=add(1,c=5)
print(res)
#函數的嵌套定義,python容許在函數內部定義函數。
def add(a,b):
#在函數內部定義的函數,將字符串轉換爲ASCII求和。
def getSum(x):
s=0
for n in x:
s+=ord(n)
return s
return getSum(a)+getSum(b)
#調用函數,有點相似於遞歸的意思。
res=add('a','b')
print(res)
#lambda函數;表達式函數,用於定義一個匿名函數,可將該函數賦值給變量,經過變量調用。lambda函數定義的基本格式以下:
#Lambda 參數表:表達式
#定義lambda表達式函數,實現兩個參數求和的功能,並將該函數賦值給一個變量。
#定義Lambda表達式函數,用於兩個參數求和的功能。
#並將該函數賦值給一個變量。
add=lambda a,b:a+b
#使用函數變量進行函數調用,傳入兩個整數
res=add(1,2)
print(res)code

#使用函數變量進行函數調用,傳入兩個字符串
res=add('ab','cd')
print(res)
#lambda函數充分說明了python中的函數名就是一個變量,該變量引用了一個函數對象。
#lambda函數很是適合定義簡單的函數,與def不一樣,lambda的函數只能是一個表達式,能夠調用其餘的函數
#但不能使用python的其餘語句。
#在lambad中調用其餘的函數
add=lambda a,b:ord(a)+ord(b)
res=add('1','2')
print(res)
#遞歸函數,遞歸函數是指在函數體內調用函數自己。例如:fac()
#定義函數:
def fac(n):
if n==0:
#遞歸函數必須可以終止,即有個邊界條件,不然會變成死循環;
return 1
else:
#遞歸調用函數自己;
return nfac(n-1)
#調用函數;
res=fac(5)
print(res)
#函數列表,python容許將函數做爲列表對象,而後經過列表索引來調用函數。
#使用lambda函數創建列表。
d=[lambda a,b:a+b,lambda a,b:a
b]
#經過下標,調用列表中的第一個函數;
res=d0
print(res)
#經過下標,調用列表中的第二個函數;
res=d1
print(res)對象

#也可使用def定義的函數來建立列表。
#定義求和函數;
def add(a,b):
return a+b
#定義求階乘函數;
def fac(n):
if n==0:
return 1
else:
return n*fac(n-1)
#創建函數列表;對於d來講,是一個列表,裏面裝載了兩個函數,add、fac;
d=[add,fac]
#調用求和函數;
res=d0
print(res)
#調用求階乘函數;
res=d1
print(res)遞歸

#3.python還容許使用字典來創建函數映射,例如:
#經過字典的方式,創建對上面已經定義好的兩個函數的映射。
d={"求和":add,"求階乘":fac}
#調用求和函數
res=d"求和"
print(res)
#調用求階乘函數;
res=d"求階乘"
print(res)
#注意:函數列表的實質就是在元祖、列表和字典等序列中創建函數對象的引用,而後經過因此來調用函數。索引

相關文章
相關標籤/搜索