python函數(二)

來源:互聯網
上載者:User

標籤:形參   轉換   定義   在定義函數時   return   允許   存在   pre   邊界條件   

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

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

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

#調用函數輸入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)

#使用函數變數進行函數調用,傳入兩個字串
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)
#注意:函數列表的實質就是在元祖、列表和字典等序列中建立函數對象的引用,然後通過所以來調用函數。

python函數(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.