Python-定義函式
阿新 • • 發佈:2020-12-25
-
函式的本質就是對功能的封裝和對程式碼的抽象
-
函式的作用:
1.避免開發重複性相同的程式碼
2.便於程式的理解和維護
3.對底層程式碼的抽象 -
基本的函式格式
def 函式名():
函式功能程式碼…
函式功能程式碼…
return(沒有return,預設返回None) -
呼叫函式:函式名()
-
特徵:函式定義之後不會自動執行,必須在呼叫後才會執行
-
函式名的命名規則:駝峰+動詞開頭
-
帶有引數的函式格式
def 函式名(引數,引數…)- 形參:形式上的引數,宣告函式時()中的引數就是形參
- 實參:實際上的引數,呼叫函式時()中的引數就是實參
- 注意:實參將值傳遞給形參的過程本質上就是簡單的變數賦值
- 引數必須以正確的順序傳入函式。呼叫時的數量必須和宣告時一樣
-
函式引數格式:
- 1.預設值的引數:可選擇性輸入的引數 - 2.可變引數:可以輸入0到任意個引數,函式內組裝成Tuple - 3.關鍵字引數:可以輸入0到任意個含引數名的引數,函式內組裝成dic - 4.命名關鍵字引數
-
函式返回值
-
呼叫函式根據執行完畢是否可以得到一個結果,將函式分為2個型別:
- 執行過程函式:print()
- 具有返回值的函式:id(),type()
-
return 特徵
- 具有return語句的函式稱為具有返回值的函式
- return可以為當前函式執行完畢返回一個結果,這樣的函式呼叫可以被接受
- return執行之後,函式則會終止,所有return之後的語句不會被執行
- 一個函式可以書寫多個return語句,但是一般會放入分支結構中
- 一個函式若要返回多個數據,可藉助複合資料型別(list,tuple,set,dict)來操作
- 不帶引數值的return返回None
-
-
函式文件:
- 函式文件就是用來檢視當前函式相關資訊介紹的一種特定格式而已 - 檢視函式文件的方法: - 1.help(函式名稱) #直接輸出顯示函式文件的內容字串 - 2.函式名.__doc__ #直接輸出顯示函式文件的內容字串 - 3.官方文件:https://docs.python.org/zh-cn/3/tutorial/index.html - 定義函式文件:'''或""" - def 函式名(引數...): ''' 在此宣告函式文件 ''' 函式功能程式碼... - 注意:函式文件的作用是對函式進行說明,便於閱讀和快速掌握函式的使用,通常函式文件需要具有以下資訊: - 1.函式的作用 - 2.函式的引數介紹(個數、資料型別) - 3.函式的返回值(資料和型別)
內建函式
print(abs(-10)) #abs取絕對值
help(abs) #檢視幫助文件
# 函式中的個數和型別都需要確認清楚
print(max(2,10))
print(max(2,1,4,7))
# 資料型別的轉換
print(int('123')) # 字串強制轉換為整數
# 字串轉換成浮點
print(float(123))
# 浮點強制轉換為字串
print(str(34.56))
print(type(str(34.56)))
# 自定義abs函式
def my_abs(x): #x 的變數的生命週期不會超過函式的呼叫
if x>=0:
return x
else:
return -x
a=my_abs(-99) # 用一個變數a來承接函式的返回值
print(a)
# 通過from和import,呼叫其他py檔案呼叫的函式
from MyTest import my_abs
print(my_abs(-89))
# help 檢視函式說明文件
help(my_abs)
# __doc__檢視
my_abs.__doc__
print(my_abs('abcd') # 提供了一個非常友好的錯誤提示
自定義函式:
def my_abs(x):
'''
自定義abs函式
:param x: int或float
:return: abs值
'''
if not isinstance(x,(int,float)):
raise TypeError('只能輸入int和float型別')
if x>=0:
return x
else:
return -x
執行的結果:
10
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
10
7
123
123.0
34.56
<class 'str'>
99
89
Help on function my_abs in module MyTest:
my_abs(x)
自定義abs函式
:param x: int或float
:return: abs值
Traceback (most recent call last):
File "D:/爬蟲/pythonProject/實戰/python 內建函式.py", line 35, in <module>
print(my_abs('abcd'))
File "D:\爬蟲\pythonProject\實戰\MyTest.py", line 8, in my_abs
raise TypeError('只能輸入int和float型別')
TypeError: 只能輸入int和float型別