溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中怎么自定義函數(shù)

發(fā)布時(shí)間:2021-11-03 15:48:46 來(lái)源:億速云 閱讀:188 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“python中怎么自定義函數(shù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“python中怎么自定義函數(shù)”吧!

  python中支持自定義函數(shù)

  以def開(kāi)頭,后接標(biāo)識(shí)符名稱及圓括號(hào)(),圓括號(hào)內(nèi)部包含參數(shù)

  圓括號(hào)后以冒號(hào)起始,下一行縮進(jìn)

  以return[表達(dá)式]結(jié)束

  # 自定義函數(shù)

  def printme(str):

  print(str)

  return

  # 調(diào)用函數(shù)1

  printme("我調(diào)用我自己")

  printme作為自定義函數(shù),str為參數(shù),自定義函數(shù)內(nèi)部的print(str)執(zhí)行將參數(shù)打印的操作,最后以return結(jié)尾。

  def中的參數(shù)分不可變類型與可變類型

  strings\tuples\numbers是不可變類型

  list\dict等是可變類型

  # 不可變類型

  def ChangeInt(a):

  a = 10

  b = 2

  ChangeInt(b)

  print(b) # 結(jié)果是 2

  可以看到b作為一個(gè)numbers,在b傳入?yún)?shù)傳入后不發(fā)生改變。

  # 可變類型1

  def changec(c):

  c[2] = 1

  return

  cc = [3, 3, 3]

  changec(cc)

  print(cc)

  可以看到cc作為一個(gè)list,在傳入c后發(fā)生了改變,結(jié)果為3,3,1。這里做了一個(gè)實(shí)驗(yàn)當(dāng)內(nèi)部函數(shù)c[2]=1改為c=[1, 1, 1]時(shí),函數(shù)不發(fā)生改變,小伙伴們感興趣可以解釋下為什么。

  # 可變類型2

  def changeme(mylist):

  "修改傳入的列表"

  mylist.append([1, 2, 3, 4])

  mylist[2] = 55

  print("函數(shù)內(nèi)取值: ", mylist)

  return

  # 調(diào)用changeme函數(shù)

  mylist = [10, 20, 30]

  changeme(mylist)

  print("函數(shù)外取值: ", mylist)

  這里append的作用是在矩陣的右邊增加[1, 2, 3, 4]矩陣,這里也是同樣道理,最終輸出結(jié)果為

  函數(shù)內(nèi)取值: [10, 20, 55, [1, 2, 3, 4]]

  函數(shù)外取值: [10, 20, 55, [1, 2, 3, 4]]

  def中的參數(shù)可自動(dòng)匹配

  # 參數(shù)名匹配參數(shù)值

  def printme(str):

  "打印任何傳入的字符串"

  print(str)

  return

  # 調(diào)用printme函數(shù)

  printme(str="My string")

  這里是參數(shù)名匹配參數(shù)值的原則,設(shè)定參數(shù)為str后,可打印str=“XXX”,python會(huì)自動(dòng)識(shí)別。

  # 參數(shù)順序不重要鄭州做人流哪家醫(yī)院好 http://mobile.sptdnk.com/

  def printinfo(name, age):

  "打印任何傳入的字符串"

  print("Name: ", name)

  print("Age ", age)

  return

  # 調(diào)用printinfo函數(shù)

  printinfo(age=25, name="wly")

  參數(shù)的順序?qū)τ趥鬟f不重要,這里顛倒順序后python自動(dòng)糾正。

  def中的參數(shù)可賦初值

  # 默認(rèn)參數(shù)在有初始值幅值的情況下可缺省

  def printinfo1(name, age=25):

  "打印任何傳入的字符串"

  print("Name: ", name)

  print("Age ", age)

  return

  # 調(diào)用printinfo函數(shù)

  printinfo1(name="wqr")

  當(dāng)有初始值賦值時(shí),可缺省參數(shù),若均有初始值賦值,可傳遞空。

  def中的不定長(zhǎng)參數(shù)

  # 不定長(zhǎng)參數(shù)

  def printinfo(arg1, *vartuple):

  "打印任何傳入的參數(shù)"

  print("輸出: ")

  print(arg1)

  for var in vartuple:

  print(var)

  return

  # 調(diào)用printinfo 函數(shù)

  printinfo(10)

  printinfo(70, 60, 50, 40)

  不定長(zhǎng)參數(shù)用*XXX來(lái)表示,此時(shí)調(diào)用函數(shù)時(shí)可大于參數(shù)個(gè)數(shù)的任意數(shù)。for的作用是在vartuple的元素個(gè)數(shù)內(nèi)循環(huán)打印,結(jié)果是

  輸出:

  10

  輸出:

  70

  60

  50

  40

  # 匿名函數(shù)只能包含一個(gè)語(yǔ)句lambda [arg1 [,arg2,.....argn]]:expression

  sum = lambda arg1, arg2: arg1 + arg2

  # 調(diào)用sum函數(shù)

  print("相加后的值為 : ", sum(10, 20))

  print("相加后的值為 : ", sum(20, 20))

  lambda是匿名函數(shù)定義如下

  lambda [arg1 [,arg2,.....argn]]:expression

感謝各位的閱讀,以上就是“python中怎么自定義函數(shù)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)python中怎么自定義函數(shù)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI