1. 程式人生 > >函式的定義以及呼叫

函式的定義以及呼叫

"""
一:函式的定義,分類
為什麼需要函式?
麵條版的程式存在的問題
1.程式碼結構不清晰,可讀性查
2.有很多冗餘(多餘的重複的)程式碼
3.後期的維護性極差,擴充套件性

基於上述問題,程式中必須有對應的解決方案就是函式

函式是什麼?
函式是實現某一功能的程式碼的集合體
相當於生活中具備某個功能的工具,例如:錘子
要使用工具 必須要先製造工具,才能使用
同理,在程式中要想使用函式,則必須先定義函式(建立函式)

如何定義函式
定義函式的語法:
def 函式的名字(引數1,..引數n):
'''
文件註釋
文件註釋可以被help函式提取
'''
程式碼1
程式碼2
程式碼n
return 值

return 引數 和註釋都是可選的

def: 定義的關鍵字
函式的名字: 用來查詢和執行函式,
python的命名規範:
不能是數字開頭
不能是關鍵字
只能由數字,字母,下劃線組成
要見名知意,這一點很重要,必選讓使用的人能看出來你的功能
用下劃線連線多個單詞
檔註釋:註釋是給程式看的備註資訊,文件註釋用於描述函式的具體細節.文件註釋可以被help函式提取
程式碼塊:具體實現功能的程式碼,也稱之為函式體
return: 用於返回值給使用者

引數是可選 那就可以將函式
分為
有參函式
當你的函式體執行需要依賴外界的資料才能完成功能,那就應該是有參函式
無參函式
當你的函式體執行不需要依賴外界的資料就能完成功能,那就應該是無參函式


如果不包含任何函式體就就稱之為空函式

定義
def func():
pass # (略過函式體)

# 呼叫
func() # 呼叫空函式是沒意義的

在程式開發初期有用,可以用於定義出程式的結構

參 數是什麼?
參加,參與,資料
參與運算的資料
什麼樣的程式碼應該定義為函式
這段程式碼會多次被執行,
這個段程式碼是一個完整的獨立的功能



二 函式的呼叫:
def func():
print("func run")
# 1.直接呼叫
func()

# 2.在表示式中呼叫
def max(a,b):
if a > b:
return a
else:
return b
print(max(10,20) * 100)

# 3.將函式的返回值作為引數
print(max(max(10,20),30))


定義階段
1.申請記憶體空間,將函式的程式碼儲存到記憶體中
2.把記憶體地址和函式名建立繫結關係
需要強調的是:函式在定義階段是不會執行函式體程式碼的,但是會檢測語法

呼叫階段
1.通過函式名找到函式的記憶體地址
2.加括號觸發函式體的執行


三 return返回值:
return 關鍵字用來返回一個值
在函式定義中是可選的

什麼時候該有返回值
函式是工具,是幫你完成某個功能的,一些功能在完成後必須要產生一個結果給呼叫者
例如生活中的榨汁機,執行完成後使用者應該得到果汁

什麼時候不需要返回值
在呼叫這個函式時,不需要返回任何結果給呼叫者,那就不需要返回值

return的特殊用法:
1.一次性返回多個值
2.返回空值
不寫任何的return 預設返回None
return後不返回任何值
return None
3.一個函式中可以有多個return關鍵字
函式執行過程中只要遇到了return 後續程式碼都不會執行了,函式立馬返回
我們可以利用這個特點來結束函式的執行
"""