函式
【一】引言
前面寫的專案都是麵條版
從頭到尾沒有中斷
報錯,更新功能很麻煩
【二】函式的概念
將某一塊程式碼快封裝起來後可以在某處直接使用的程式碼塊
先定義再呼叫
【三】函式語法
【1】標準函式結構
def 函式名():
程式碼體
【2】定義函式
def login():
print("登入")
login()
【3】函式的內部原理
-
在函式定義階段
-
def 表示在記憶體空間中開闢一塊空間地址
-
login是空間地址的名字
-
()函式可能會收到引數
-
程式碼體 函式能執行的程式碼塊
【四】函式型別
【1】有參和無參函式
- 函式是否需要接受引數,位置引數
# 方式一: 在函式頭頂上指定引數
username = 'qwer'
password = '11'
def login():
# 函式內部可以直接使用外部函式頭頂上面的引數
if username == 'qwer' and password == '11':
print(f"當前使用者登入成功")
else:
print("當前使用者登入失敗")
login()
# 方式二:有參函式,在函式名後面的()放變數名即可
def login(username, password):
# 函式內部可以直接使用外部函式頭頂上面的引數
if username == 'qwer' and password == '11':
print(f"當前使用者登入成功")
else:
print("當前使用者登入失敗")
# (1)按照位置傳遞引數 : 引數位置不能隨意更改
login('qwer', '11')
login('11', 'qwer')
當前使用者登入成功
當前使用者登入失敗
# (2)關鍵字傳遞引數 並且和函式定義時定義的引數名一樣
login(password='11', username='qwer')
當前使用者登入成功
- 區分有參或無參看函式名後面的()有沒有變數名
- 無參函式不需引數傳遞就能直接呼叫
- 有參函式呼叫的時候需要傳遞引數
- 傳參可以按照位置傳,定義時哪個變數在前就先傳哪個
- 傳參可以按照關鍵字傳,變數定義的先後不會影響
【五】有返回值函式和無返回值函式
函式的返回值是元組
# 函式的返回值是元組
def get_user_pwd():
username = input("請輸入使用者名稱 :>>>>> ").strip()
password = input("請輸入密 碼 :>>>>> ").strip()
return username, password
def login(username, password):
if username == '11' and password == '22':
print(f"登入成功")
else:
print('登入失敗')
def register(username, password):
# 模擬開啟了檔案並寫入內容
data = f'{username}|{password}'
print(data)
def main():
print(f"當前功能如下 : 1 登入 2 註冊")
func_id = input("請輸入功能ID ").strip()
func_id = int(func_id)
if func_id == 1:
username, password = get_user_pwd()
login(username=username, password=password)
elif func_id == 2:
username, password = get_user_pwd()
register(username=username, password=password)
main()
- 區分有參或無參看函式名後面的()有沒有變數名
- 無參函式不需引數傳遞就能直接呼叫
- 有參函式呼叫的時候需要傳遞引數
- 傳參可以按照位置傳,定義時哪個變數在前就先傳哪個
- 傳參可以按照關鍵字傳,變數定義的先後不會影響