您好,登錄后才能下訂單哦!
這篇文章主要講解了“python中怎么自定義函數”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python中怎么自定義函數”吧!
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會自動識別。
# 參數順序不重要鄭州做人流哪家醫院好 http://mobile.sptdnk.com/
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
感謝各位的閱讀,以上就是“python中怎么自定義函數”的內容了,經過本文的學習后,相信大家對python中怎么自定義函數這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。