python學習總結之 函式定義def
python中支援自定義函式
以def開頭,後接識別符號名稱及圓括號(),圓括號內部包含引數
圓括號後以冒號起始,下一行縮排
以return[表示式]結束
# 自定義函式
def printme(str):
print(str)
return
# 呼叫函式1
printme("我呼叫我自己")
printme作為自定義函式,str為引數,自定義函式內部的print(str)執行將引數列印的操作,最後以return結尾。
def中的引數分不可變型別與可變型別
strings\tuples\numbers是不可變型別
list\dict等是可變型別
# 不可變型別
def ChangeInt(a):
a = 10
b = 2
ChangeInt(b)
print(b) # 結果是 2
可以看到b作為一個numbers,在b傳入引數傳入後不發生改變。
# 可變型別1
def changec(c):
c[2] = 1
return
cc = [3, 3, 3]
changec(cc)
print(cc)
可以看到cc作為一個list,在傳入c後發生了改變,結果為3,3,1。這裡做了一個實驗當內部函式c[2]=1改為c=[1, 1, 1]時,函式不發生改變,小夥伴們感興趣可以解釋下為什麼。
# 可變型別2
def changeme(mylist):
"修改傳入的列表"
mylist.append([1, 2, 3, 4])
mylist[2] = 55
print("函式內取值: ", mylist)
return
# 呼叫changeme函式
mylist = [10, 20, 30]
changeme(mylist)
print("函式外取值: ", mylist)
這裡append的作用是在矩陣的右邊增加[1, 2, 3, 4]矩陣,這裡也是同樣道理,最終輸出結果為
函式內取值: [10, 20, 55, [1, 2, 3, 4]]
函式外取值: [10, 20, 55, [1, 2, 3, 4]]
def中的引數可自動匹配
# 引數名匹配引數值
def printme(str):
"列印任何傳入的字串"
print(str)
return
# 呼叫printme函式
printme(str="My string")
這裡是引數名匹配引數值的原則,設定引數為str後,可列印str=“XXX”,python會自動識別。
# 引數順序不重要 鄭州做人流哪家醫院好
def printinfo(name, age):
"列印任何傳入的字串"
print("Name: ", name)
print("Age ", age)
return
# 呼叫printinfo函式
printinfo(age=25, name="wly")
引數的順序對於傳遞不重要,這裡顛倒順序後python自動糾正。
def中的引數可賦初值
# 預設引數在有初始值幅值的情況下可預設
def printinfo1(name, age=25):
"列印任何傳入的字串"
print("Name: ", name)
print("Age ", age)
return
# 呼叫printinfo函式
printinfo1(name="wqr")
當有初始值賦值時,可預設引數,若均有初始值賦值,可傳遞空。
def中的不定長引數
# 不定長引數
def printinfo(arg1, *vartuple):
"列印任何傳入的引數"
print("輸出: ")
print(arg1)
for var in vartuple:
print(var)
return
# 呼叫printinfo 函式
printinfo(10)
printinfo(70, 60, 50, 40)
不定長引數用*XXX來表示,此時呼叫函式時可大於引數個數的任意數。for的作用是在vartuple的元素個數內迴圈列印,結果是
輸出:
10
輸出:
70
60
50
40
# 匿名函式只能包含一個語句lambda [arg1 [,arg2,.....argn]]:expression
sum = lambda arg1, arg2: arg1 + arg2
# 呼叫sum函式
print("相加後的值為 : ", sum(10, 20))
print("相加後的值為 : ", sum(20, 20))
lambda是匿名函式定義如下
lambda [arg1 [,arg2,.....argn]]:expression
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2685231/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python學習系列之類的定義、建構函式 def __init__Python函式
- PHP 學習總結之函式PHP函式
- Python---python函式學習總結Python函式
- 前端學習之PHP基礎函式總結前端PHP函式
- Python學習之函式Python函式
- c++函式學習總結C++函式
- python中list方法與函式的學習總結Python函式
- Python學習之zip函式Python函式
- Oracle 中 Over() 函式學習總結Oracle函式
- python如何定義函式Python函式
- python---函式定義Python函式
- 小甲魚python學習總結之函式——lambda fillter() map() 閉包 遞迴Python函式遞迴
- qt之函式重定義QT函式
- tensorflow相關函式學習總結函式
- C++虛擬函式學習總結C++函式
- JavaScript學習總結(四)function函式部分JavaScriptFunction函式
- 廖雪峰JS學習總結-函式篇JS函式
- 什麼是Python函式?如何定義函式?Python函式
- (十六)Python學習之內建函式Python函式
- Python如何定義一個函式Python函式
- Python學習之函式返回多個值Python函式
- 零基礎學習 Python 之函式Python函式
- Python巢狀定義函式增強reduce()函式功能Python巢狀函式
- Python函式引數總結Python函式
- Python騷操作:動態定義函式Python函式
- python學習總結Python
- shell 函式定義函式
- python3 筆記16.構建函式defPython筆記函式
- mysql之常用函式(核心總結)MySql函式
- Python 中級學習之函式裝飾器Python函式
- php之正規表示式函式總結PHP函式
- 【aierong 】Sql 2005 Transact-SQL 新兵器學習總結之-排名函式AISQL函式
- 【總結】Python常用函式有哪些?Python函式
- python 中 print 函式用法總結Python函式
- python常用函式年初大總結Python函式
- 【python官方文件】深入理解python函式定義Python函式
- python學習命令總結Python
- Python NumPy學習總結Python