1. 程式人生 > 實用技巧 >python基礎--函式加強

python基礎--函式加強

一. 應用:學員管理系統

1.1 系統簡介

需求:進入系統顯示系統功能介面,功能如下:

  • 1、新增學員
  • 2、刪除學員
  • 3、修改學員資訊
  • 4、查詢學員資訊
  • 5、顯示所有學員資訊
  • 6、退出系統

系統共6個功能,使用者根據自己需求選取。

1.2 步驟分析

  1. 顯示功能介面

  2. 使用者輸入功能序號

  3. 根據使用者輸入的功能序號,執行不同的功能(函式)

    3.1 定義函式

    3.2 呼叫函式

1.3 需求實現

1.3.1 顯示功能介面

定義函式print_info,負責顯示系統功能。

def print_info():
    print('-' * 20)
    print('歡迎登入學員管理系統')
    print('1: 新增學員')
    print('2: 刪除學員')
    print('3: 修改學員資訊')
    print('4: 查詢學員資訊')
    print('5: 顯示所有學員資訊')
    print('6: 退出系統')
    print('-' * 20)
    
    
print_info()

1.3.2 使用者輸入序號,選擇功能

user_num = input('請選擇您需要的功能序號:')

1.3.3 根據使用者選擇,執行不同的功能

if user_num == '1':
    print('新增學員')
elif user_num == '2':
    print('刪除學員')
elif user_num == '3':
    print('修改學員資訊')
elif user_num == '4':
    print('查詢學員資訊')
elif user_num == '5':
    print('顯示所有學員資訊')
elif user_num == '6':
    print('退出系統')

工作中,需要根據實際需求調優程式碼。

  1. 使用者選擇系統功能的程式碼需要迴圈使用,直到使用者主動退出系統。
  2. 如果使用者輸入1-6以外的數字,需要提示使用者。
while True:
    # 1. 顯示功能介面
    print_info()
    
    # 2. 使用者選擇功能
    user_num = input('請選擇您需要的功能序號:')

    # 3. 根據使用者選擇,執行不同的功能
    if user_num == '1':
        print('新增學員')
    elif user_num == '2':
        print('刪除學員')
    elif user_num == '3':
        print('修改學員資訊')
    elif user_num == '4':
        print('查詢學員資訊')
    elif user_num == '5':
        print('顯示所有學員資訊')
    elif user_num == '6':
        print('退出系統')
    else:
        print('輸入錯誤,請重新輸入!!!')

1.3.4 定義不同功能的函式

所有功能函式都是操作學員資訊,所有儲存所有學員資訊應該是一個全域性變數,資料型別為列表

info = []

1.3.4.1 新增學員

  • 需求分析
  1. 接收使用者輸入學員資訊,並儲存

  2. 判斷是否新增學員資訊

    2.1 如果學員姓名已經存在,則報錯提示

    2.2 如果學員姓名不存在,則準備空字典,將使用者輸入的資料追加到字典,再列表追加字典資料

  3. 對應的if條件成立的位置呼叫該函式

  • 程式碼實現
def add_info():
    """ 新增學員 """
    # 接收使用者輸入學員資訊
    new_id = input('請輸入學號:')
    new_name = input('請輸入姓名:')
    new_tel = input('請輸入手機號:')
    

    # 宣告info是全域性變數
    global info

    # 檢測使用者輸入的姓名是否存在,存在則報錯提示
    for i in info:
        if new_name == i['name']:
            print('該使用者已經存在!')
            return

    # 如果使用者輸入的姓名不存在,則新增該學員資訊
    info_dict = {}
    
    # 將使用者輸入的資料追加到字典
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    
    # 將這個學員的字典資料追加到列表
    info.append(info_dict)
    
    print(info)

1.3.4.2 刪除學員

  • 需求分析

按使用者輸入的學員姓名進行刪除

  1. 使用者輸入目標學員姓名

  2. 檢查這個學員是否存在

    2.1 如果存在,則列表刪除這個資料

    2.2 如果不存在,則提示“該使用者不存在”

  3. 對應的if條件成立的位置呼叫該函式

  • 程式碼實現
# 刪除學員
def del_info():
    """刪除學員"""
    # 1. 使用者輸入要刪除的學員的姓名
    del_name = input('請輸入要刪除的學員的姓名:')

    global info
    # 2. 判斷學員是否存在:如果輸入的姓名存在則刪除,否則報錯提示
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            break
    else:
        print('該學員不存在')

    print(info)

1.3.4.3 修改學員資訊

  • 需求分析
  1. 使用者輸入目標學員姓名

  2. 檢查這個學員是否存在

    2.1 如果存在,則修改這位學員的資訊,例如手機號

    2.2 如果不存在,則報錯

  3. 對應的if條件成立的位置呼叫該函式

  • 程式碼實現
# 修改函式
def modify_info():
    """修改函式"""
    # 1. 使用者輸入要修改的學員的姓名
    modify_name = input('請輸入要修改的學員的姓名:')

    global info
    # 2. 判斷學員是否存在:如果輸入的姓名存在則修改手機號,否則報錯提示
    for i in info:
        if modify_name == i ['name']:
            i['tel'] = input('請輸入新的手機號:')
            break
    else:
        print('該學員不存在')
    
    print(info)

1.3.4.4 查詢學員資訊

  • 需求分析
  1. 使用者輸入目標學員姓名

  2. 檢查學員是否存在

    2.1 如果存在,則顯示這個學員的資訊

    2.2 如果不存在,則報錯提示

  3. 對應的if條件成立的位置呼叫該函式

  • 程式碼實現
# 查詢學員
def search_info():
    """查詢學員"""
    # 1. 輸入要查詢的學員姓名:
    search_name = input('請輸入要查詢的學員姓名:')

    global info
    # 2. 判斷學員是否存在:如果輸入的姓名存在則顯示這位學員資訊,否則報錯提示
    for i in info:
        if search_name == i['name']:
            print('查詢到的學員資訊如下:----------')
            print(f"該學員的學號是{i['id']}, 姓名是{i['name']}, 手機號是{i['tel']}")
            break
    else:
        print('該學員不存在')

1.3.4.5 顯示所有學員資訊

  • 需求分析

列印所有學員資訊

  • 程式碼實現
# 顯示所有學員資訊
def print_all():
    """ 顯示所有學員資訊 """
    print('學號\t姓名\t手機號')
    for i in info:
        print(f'{i["id"]}\t{i["name"]}\t{i["tel"]}')

1.3.4.6 退出系統

在使用者輸入功能序號6的時候要退出系統,程式碼如下:

    ......
    elif user_num == '6':
        exit_flag = input('確定要退出嗎?yes or no')
        if exit_flag == 'yes':
            break

全部程式碼

def print_info():
    print('-' * 20)
    print('歡迎登入學員管理系統')
    print('1: 新增學員')
    print('2: 刪除學員')
    print('3: 修改學員資訊')
    print('4: 查詢學員資訊')
    print('5: 顯示所有學員資訊')
    print('6: 退出系統')
    print('-' * 20)


# print_info()
# 新增學員資訊的函式
info = []
def add_info():
    '''新增學員'''
    # 接收使用者輸入學員資訊
    new_id = input('請輸入學號:')
    new_name = input('請輸入姓名:')
    new_tel = input('請輸入手機號:')
    # 宣告info是全域性變數
    global info
    # 檢測使用者輸入的姓名是否存在,存在則報錯提示
    for i in info:
        if new_name == i['name']:
            print('該使用者已存在:')
            return
    # 如果使用者輸入的姓名不存在,則新增該學員資訊
    info_dict = {}
    # 將使用者輸入的資料追加到字典
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    # 將這個學員的字典資料追加到列表
    info.append(info_dict)
    print(info)

def del_info():
    '''刪除學員'''
    # 1,使用者輸入要刪除的學員的姓名
    del_name = input('請輸入要刪除的學員的姓名:')
    global info
    # 2,判斷學員是否存在:如果存在則刪除,如果不存在則提示報錯
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            break
    else:
         print('該學員不存在')
    print(info)

def modify_info():
    '''修改函式'''
    # 1, 使用者輸入要修改的學員姓名
    modify_name = input('請輸入要修改的學員姓名:')
    global info
    # 2, 判斷學員是否存在,如果存在則修改,如果不存在則報錯
    for i in info:
        if modify_name == i['name']:
            i['tel'] = input('請輸入新的手機號')
            break
    else:
        print('該學員不存在')
    print(info)

def search_info():
    '''查詢學員'''
    # 1,輸入要查詢的學員姓名:
    search_name = input('請輸入要查詢的學員姓名:')
    global info
    # 2,判斷學員是否存在,如果存在則返回資訊,否則報錯提示
    for i in info:
        search_name == i['name']
        print('查詢的學員資訊如下:----------')
        print(f"該學員的學號是{i['id']},姓名是{i['name']},手機號是{i['tel']}")
        break
    else:
        print('該學員不存在')

def print_all():
    '''顯示所有學員資訊'''
    print('學號\t姓名\t手機號')
    for i in info:
        print(f'{i["id"]}\t{i["name"]}\t{i["tel"]}')
while True:
    # 1,顯示功能介面
    print_info()
    # 2,使用者選擇功能
    user_num = input('請輸入您需要的序號:')
    # 3,根據使用者選擇,執行不同的功能
    if user_num == '1':
        # print('新增學員')
        add_info()
    elif user_num == '2':
        # print('刪除學員')
        del_info()
    elif user_num == '3':
        # print('修改學員資訊')
        modify_info()
    elif user_num == '4':
        # print('查詢學員資訊')
        search_info()
    elif user_num == '5':
        # print('顯示所有學員資訊')
        print_all()
    elif user_num == '6':
        print('退出系統')
    else:
        print('輸入錯誤,請重新輸入!')