溫馨提示×

溫馨提示×

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

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

python3.7函數(shù)基礎(chǔ)知識有哪些

發(fā)布時間:2021-11-03 10:59:29 來源:億速云 閱讀:128 作者:iii 欄目:編程語言

本篇內(nèi)容介紹了“python3.7函數(shù)基礎(chǔ)知識有哪些”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

  一、函數(shù)

  從開始接觸python就接觸了函數(shù)。 例如 input()函數(shù)用于獲取用戶鍵盤輸入、print()函數(shù)用于輸出結(jié)果、range()函數(shù)用于生成整數(shù)序列、len()函數(shù)用于獲取序列的長度。不僅如此python還為我們提供了自定義函數(shù)。即將有規(guī)律,可重復(fù)使用的代碼封裝成函數(shù),從而達(dá)到一次編寫多次調(diào)用的結(jié)果。由此可見我們可以簡單的認(rèn)為函數(shù)是可以實(shí)現(xiàn)特定功能的代碼塊。

  二、函數(shù)的定義

  假如我們要求0-100之間的和應(yīng)該怎么將其寫成函數(shù)呢?

  def sun():

  a = 0

  for i in list(range(101)):

  a += i

  print(a)

  sun()

  --------------------

  5050

  上述代碼我們定義了一個函數(shù)實(shí)現(xiàn)0-100的求和。 而且得到了準(zhǔn)確的結(jié)果。 首先用def關(guān)鍵字用來定義一個函數(shù)。后面跟一個函數(shù)名。 函數(shù)名顧名思義就是函數(shù)的名字。 這個名字是我們自定義的同樣遵循命名規(guī)范。函數(shù)名后面的"()"表示參數(shù)列表。 具體會在下一個列子中講到。 括號后面的是函數(shù)體即我們的求和功能。 程序的最后一行sun()稱之為函數(shù)的調(diào)用。 定義了函數(shù)如果不調(diào)用就相當(dāng)于不執(zhí)行。簡而言之也就無法生成求和的功能。

  同時我們思考另一個問題。 不是說函數(shù)是可以重復(fù)利用的嘛。 很明顯上述函數(shù)只能完成0-100的求和。 假如說要完成1-1000,或者0-300之間的求和,難道要繼續(xù)寫嘛。顯然不是。

  def sun(mag):

  a = 0

  for i in list(range(mag)):

  a += i

  print(a)

  sun(1002)

  sun(301)

  501501

  -----------------

  45150

  通過上述代碼我們發(fā)現(xiàn)我們在示例1 的基礎(chǔ)上在參數(shù)列表假如mag,這個成為參數(shù)。 關(guān)于參數(shù)后面還會具體講到。 一個參數(shù)可以有多個參數(shù)。 參數(shù)與參數(shù)之間用逗號隔開。 與此同時我們吧range里原先的100換成了我們的參數(shù)。 此時不難發(fā)現(xiàn)我們在調(diào)用函數(shù)的時候分別在括號里填上了1001和301。 這樣就實(shí)現(xiàn)了我們提出的求0-1000和0-300求個的功能。

  那么我們有提出新的疑問。假如說我們不僅要實(shí)現(xiàn)求和。 然后還要將求出來的和參與別的運(yùn)算。此時我們又應(yīng)該怎么做呢?

  def sun(mag):

  a = 0

  for i in list(range(mag)):

  a += i

  return a

  b = sun(1002)

  print(b)

  c = b - 10000

  print(c)

  501501

  ------------------

  491501

  我們在示例2 的基礎(chǔ)上又添加了return a 這句話的意思是把計(jì)算結(jié)果返回到函數(shù)調(diào)用的地方。這樣我們就可以用個計(jì)算結(jié)果去做別的事了。

  小結(jié):

  函數(shù)名:其實(shí)就是一個符合 Python 語法的標(biāo)識符,但不建議讀者使用 a、b、c 這類簡單的標(biāo)識符作為函數(shù)名,函數(shù)名最好能夠體現(xiàn)出該函數(shù)的功能。

  形參列表:即上面括號里的函數(shù)列表,設(shè)置該函數(shù)可以接收多少個參數(shù),多個參數(shù)之間用逗號( , )分隔。

  [return [返回值] ]:整體作為函數(shù)的可選參參數(shù),用于設(shè)置該函數(shù)的返回值。也就是說,一個函數(shù),可以用返回值,也可以沒有返回值,是否需要根據(jù)實(shí)際情況而定

  三、函數(shù)的調(diào)用

  到目前為止對函數(shù)的調(diào)用已經(jīng)比較熟悉。 即 函數(shù)名(形參值),函數(shù)名即指的是要調(diào)用的函數(shù)的名稱;形參值指的是當(dāng)初創(chuàng)建函數(shù)時要求傳入的各個形參的值,需要注意的是,創(chuàng)建函數(shù)有多少個形參,那么調(diào)用時就需要傳入多少個值,且順序必須和創(chuàng)建函數(shù)時一致。即便該函數(shù)沒有參數(shù),函數(shù)名后的小括號也不能省略。

  四、pass語句

  如果想定義一個什么事也不做的空函數(shù),可以用pass語句.pass語句什么都不做,那有什么用?實(shí)際上pass可以用來作為占位符,比如現(xiàn)在還沒想好怎么寫函數(shù)的代碼,就可以先放一個pass,讓代碼能運(yùn)行起來。

  def sun():

  pass

  五、為函數(shù)添加說明文檔

  函數(shù)不僅僅是給自己用的。 在一個團(tuán)隊(duì)中很可能其他人也要用到。 這時如果他不知道函數(shù)的功能就沒法準(zhǔn)確的調(diào)用。或者時隔很久要做維護(hù)和修改或者新員工要接手項(xiàng)目。 如果沒寫注釋不僅效率低。而且有可能回成為吐槽的對象。 因此添加說明文檔必不可少。例如

  """

  功能:求指定序列的和

  mag 要生成的序列的最大值

  """

  def sun(mag):

  a = 0

  # 通過循環(huán)求和并返回結(jié)果

  for i in list(range(mag)):

  a += i

  return a

  b = sun(1002)

  print(b)

  六、參數(shù)檢查

  函數(shù)調(diào)用時如果參數(shù)的個數(shù)不對。python的解釋器會自動檢查出來

  """

  功能:求指定序列的和

  mag 要生成的序列的最大值

  """

  def sun(mag):

  a = 0

  # 通過循環(huán)求和并返回結(jié)果

  for i in list(range(mag)):

  a += i

  return a

  b = sun()

  print(b)

  Traceback (most recent call last):

  File "/Users/apple/Documents/重要文件/python3/python20.py", line 12, in

  b = sun()

  TypeError: sun() missing 1 required positional argument: 'mag'

  但是參數(shù)的類型不對那么解釋器就無能為力了。

  def my_list(number):

  print(list(range(number)))

  my_list("10")

  Traceback (most recent call last):

  File "/Users/apple/Documents/重要文件/python3/python20.py", line 5, in

  my_list("10")鄭州正規(guī)人流醫(yī)院 www.zykdrl120.com

  File "/Users/apple/Documents/重要文件/python3/python20.py", line 3, in my_list

  print(list(range(number)))

  TypeError: 'str' object cannot be interpreted as an integer

  顯然我們要生成0-9的列表。而我們偏偏傳入了字符串這時就會報錯。此時內(nèi)置函數(shù)isinstance()就派上用場了

  def my_list(number):

  if isinstance(number, int):

  print(list(range(number)))

  else:

  print("只接受整型的數(shù)值")

  my_list("10")

  my_list(10)

  只接受整型的數(shù)值

  ---------------

  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  那么可不可以一個參數(shù)滿足兩個或者以上類型呢?當(dāng)然可以

  def my_list(number):

  if isinstance(number, (int, float, str)):

  print("我滿足了條件")

  else:

  print("我不滿足條件")

  my_list("10")

  my_list(10)

  my_list((1, 2))

  我滿足了條件

  我滿足了條件

  我不滿足條件

  七、函數(shù)返回多個值

  def my_list():

  return 10, 20, [1, 3]

  a = my_list()

  print(a)

  (10, 20, [1, 3])

  由上述例子可知函數(shù)是可以一次性返回多個值的。但是這個返回值是tuple

“python3.7函數(shù)基礎(chǔ)知識有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

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

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

AI