跟著廖老師學(xué)Python(12):函數(shù)2 - 定義函數(shù)

續(xù):第(11)節(jié)
本文所有引用均來自廖雪峰老師的網(wǎng)站。轉(zhuǎn)載請說明出處。


  1. 在Python中,定義函數(shù)使用的是def語句:
    def my_abs(x):

  2. 然后,在縮進(jìn)塊中編寫函數(shù)體,函數(shù)的返回值用return語句返回。
    def my_abs(x):
    if x >= 0:
    return x
    else:
    return -x


    定義函數(shù)-例子
  3. 可以將上述自定義函數(shù)單獨保存為一個.py文件。令文件名為def_func.py。此時,就可以使用Python解釋器,使用from def_func import my_abs來導(dǎo)入my_abs()函數(shù)了(前提是當(dāng)前工作目錄中含有這個.py文件):

    例子

  4. 空函數(shù) - pass的使用

    • 只定義一個函數(shù)名,并沒有任何實質(zhì)的語句進(jìn)行實現(xiàn)的函數(shù)。例如:
      def nop():
      pass

    • 這里的pass相當(dāng)于一個占位符。有的時候不知道函數(shù)怎么實現(xiàn),先這么寫一下,讓代碼跑起來再說。

    • pass還可以用于條件語句等其他語句中:
      if age>=18:
      pass

  5. 參數(shù)檢查
    在使用Python內(nèi)置函數(shù)時,若傳入?yún)?shù)的類型不正確,那么Python解釋器會自動檢查出來并拋出TypeError
    而在我們自己定義的函數(shù)中,由于我們自己沒有對參數(shù)進(jìn)行檢查,所以若傳入錯誤類型的參數(shù),是不會拋出TypeError的。
    此時,可以對我們自己的函數(shù)進(jìn)行參數(shù)類型的檢查。例如,只允許整數(shù)和浮點數(shù)類型的參數(shù)。

數(shù)據(jù)類型檢查可以用內(nèi)置函數(shù)isinstance()實現(xiàn)
if not instance(x, (int, float)):
raise TypeError('bad operand type')

  1. 返回多個值
    import math #導(dǎo)入math包,類似于C中的include

Python的函數(shù)返回多值其實就是返回一個tuple,也就是說,Python函數(shù)返回的仍然是單一值。

但是,在語法上,返回一個tuple可以省略括號,而多個變量可以同時接收一個tuple,按位置賦給對應(yīng)的值。

move.py
運行結(jié)果

注意:使用math相關(guān)函數(shù)時,每個函數(shù)前面都要加入math.前綴。

(未完待續(xù)……)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Python 是一種相當(dāng)高級的語言,通過 Python 解釋器把符合語法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機(jī)器碼...
    Python程序媛閱讀 1,951評論 0 3
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,630評論 1 118
  • 什么是函數(shù) 我們知道圓的面積計算公式為: S = πr2 當(dāng)我們知道半徑r的值時,就可以根據(jù)公式計算出面積。假設(shè)我...
    _王子_閱讀 567評論 0 2
  • 教程地址:python進(jìn)階 - 慕課網(wǎng) python函數(shù)式編程 變量可以指向函數(shù): f = absprint(f)...
    竹口小生閱讀 594評論 0 2
  • 一、python 變量和數(shù)據(jù)類型 1.整數(shù) Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整數(shù),在Python程序...
    績重KF閱讀 1,787評論 0 1