摘要:例如是函數的別名二函數定義語法形式定義關鍵字。中將函數的聲明和定義視為一體,函數由聲明的標題行和定義體組成。函數名參數列表函數體注意函數的返回值用關鍵字進行返回。中不允許在函數未聲明定義前,對其進行引用或者調用。使用語句函數名。
函數,function,是一段代碼的集合體。是Python為了代碼最大程度的重用、減小代碼冗余而提供的最基本的程序結構。
Python是一門面向對象的編程語言,對函數進行分類和封裝,由對象實現對方法的調用。
在此之前,我們已經接觸過一部分Python的Built-in內建函數,例如abs()、max()、min()、int()等。
要實現調用一個函數,必須先知道函數的名稱以及所需要的參數信息。對于內建函數,可以通過命令help(func_name)查看函數的幫助信息。
通過函數名實現調用,其中的函數名其實就是指向一個函數的對象引用,可以把函數名賦給任何一個變量,相當于給這個函數起了一個別名。
例如:
>>> a = abs # a 是函數abs()的別名 >>> a(-1) 1二、函數定義
語法形式
定義關鍵字def。Python中將函數的聲明和定義視為一體,函數由聲明的標題行和定義體組成。
def 函數名(參數列表): 函數體 return sth.
【注意】:
函數的返回值用return關鍵字進行返回。若沒有顯示的使用return,則默認返回None。
函數的返回值是一個tuple類型的值。返回一個值時,括號省略;返回多個值時,為同一個tuple接收,把位置賦給相應的值。如果要返回一個list的值,則需要顯示地使用“[]”進行修改。
前向引用。Python中不允許在函數未聲明定義前,對其進行引用或者調用。
【例子一】自定義一個求絕對值的函數為例:
>>> def my_abs(x): ... if x>= 0: ... return x ... else: ... return –x >>> my_abs(-3) 3
定義一個空函數
如何定義一個空函數?使用pass關鍵字。
pass語句用來作為占位符。
什么時候使用呢?一般是比如說這段代碼還沒想好怎么寫,可以使用pass讓代碼能運行起來。
def nop(): pass三、import 調用
函數定義完成后,把函數寫入到***.py文件中保存。進入到該存放路徑下,啟動Python解釋器。
使用語句“from py_file_name import 函數名”。
import 語句可以導入需要的Python模塊,例如 import time;
也可以從模塊中導入某部分,from time import sleep,ctime;
也可以導入某個自定義的模塊或者模塊中的函數等。
有時候工程模塊存在層級目錄結構,而只需要導入工程中下的某文件的某部分,則可以使用“.”進行導入,例如:
from 工程名層級.test_function import TestFunc
調用函數時,需要對函數的參數列表進行檢查。
如果參數個數不對,python解釋器會自動檢查出來,并拋出TypeError。但如果參數類型不對,python解釋器就無法幫助檢查。
內置函數
內置函數參數類型不對時:
>>> abs("a") Traceback (most recent call last): File "", line 1, in TypeError: bad operand type for abs(): "str"
自定義函數
若函數定義沒有參數檢查,則出錯信息在下一句,與內置函數不一樣,說明函數定義不夠完善。
def my_abs(x): if x>= 0: return x else : return -x >>> my_abs("a") Traceback (most recent call last): File "", line 1, in File "D:Python_project est1.py", line 2, in my_abs if x>= 0: (if語句報的錯) TypeError: ">=" not supported between instances of "str" and "int"
改為如下:
def my_abs1(x): if not isinstance(x,(int , float )): # 參數類型檢查 raise TypeError("not the type") # 拋出錯誤并提示“not the type” if x >=0: return x else: return -x >>> my_abs1("a") Traceback (most recent call last): File "", line 1, in File "D:Python_project est1.py", line 11, in my_abs1 raise TypeError("not the type") TypeError: not the type # (錯誤和異常的處理)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42318.html
摘要:為我們提供了許多內置函數,例如并提供了創建用戶定義函數的能力。會將該變量視為函數級作用域中的局部變量。回到目錄中函數的用途是什么是中的內置函數之一。請注意,這種類型的參數語法不允許將命名參數傳遞給函數。函數接受一個稱為的可選參數。 ...
摘要:回到目錄評論區抽粉絲送書啦歡迎大家在評論區提出意見和建議抽兩位幸運兒送書,實物圖如下開發從入門到精通內容簡介案例教學。 ? 作者主頁:海擁 ? 作者簡介:?CSDN...
摘要:調用以回調函數地址為參數的函數這個主題就稍微繞一些了,也就是說在接口中,需要傳入回調函數作為參數。這個問題在中也可以解決,并且回調函數可以用定義。代碼代碼很簡單回調函數的傳入參數為,返回參數也是。 項目中要對一個用 C 編寫的 .so 庫進行邏輯自測。這項工作,考慮到靈活性,我首先考慮用 Python 來完成。 研究了一些資料,采用 python 的 ctypes 來完成這項工作。已經...
摘要:主要是庫文件頭文件文件不一致的問題。定義模塊函數其中函數參數是模塊自身,是傳遞的參數列表,返回值定義了一個整形數,這里會申請空間增加引用計數,交由來管理這個引用。 C++開發python windows版本的擴展模塊示例測試環境介紹和準備測試環境:操作系統:windows10Python版本:3.7.0VS版本:vs2015社區版(免費)相關工具下載:VS版本vs2015社區版(免費)...
摘要:主要是庫文件頭文件文件不一致的問題。定義模塊函數其中函數參數是模塊自身,是傳遞的參數列表,返回值定義了一個整形數,這里會申請空間增加引用計數,交由來管理這個引用。 C++開發python windows版本的擴展模塊示例測試環境介紹和準備測試環境:操作系統:windows10Python版本:3.7.0VS版本:vs2015社區版(免費)相關工具下載:VS版本vs2015社區版(免費)...
摘要:官方也宣布在停止對的維護。并且在很多面試過程中,面試官都會問與的區別。的版本,常被稱為,或簡稱。與部分地支持這種形式的語法。捕獲異常的語法由改為。在中,表示八進制字面量的方式只有一種,就是。已經支援新的模組。 前言 如果你是剛接觸 Python 的初學者,那你可能是直接學習 Python 3.x 版本。對于 Python 2.x 的版本是不會有所接觸。官方也宣布在 2020 停止對 P...
閱讀 977·2023-04-25 23:55
閱讀 2699·2023-04-25 14:13
閱讀 3294·2019-08-26 13:47
閱讀 2963·2019-08-23 18:16
閱讀 623·2019-08-23 17:20
閱讀 3225·2019-08-23 16:55
閱讀 3141·2019-08-22 15:39
閱讀 3189·2019-08-20 18:10