函式

随机昵称yi發表於2024-05-16

函式

【一】引言

前面寫的專案都是麵條版

從頭到尾沒有中斷

報錯,更新功能很麻煩

【二】函式的概念

將某一塊程式碼快封裝起來後可以在某處直接使用的程式碼塊

先定義再呼叫

【三】函式語法

【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()
  • 區分有參或無參看函式名後面的()有沒有變數名
  • 無參函式不需引數傳遞就能直接呼叫
  • 有參函式呼叫的時候需要傳遞引數
  • 傳參可以按照位置傳,定義時哪個變數在前就先傳哪個
  • 傳參可以按照關鍵字傳,變數定義的先後不會影響

相關文章