python基礎--函式加強
阿新 • • 發佈:2020-09-07
一. 應用:學員管理系統
1.1 系統簡介
需求:進入系統顯示系統功能介面,功能如下:
- 1、新增學員
- 2、刪除學員
- 3、修改學員資訊
- 4、查詢學員資訊
- 5、顯示所有學員資訊
- 6、退出系統
系統共6個功能,使用者根據自己需求選取。
1.2 步驟分析
-
顯示功能介面
-
使用者輸入功能序號
-
根據使用者輸入的功能序號,執行不同的功能(函式)
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-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 新增學員
- 需求分析
-
接收使用者輸入學員資訊,並儲存
-
判斷是否新增學員資訊
2.1 如果學員姓名已經存在,則報錯提示
2.2 如果學員姓名不存在,則準備空字典,將使用者輸入的資料追加到字典,再列表追加字典資料
-
對應的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 刪除學員
- 需求分析
按使用者輸入的學員姓名進行刪除
-
使用者輸入目標學員姓名
-
檢查這個學員是否存在
2.1 如果存在,則列表刪除這個資料
2.2 如果不存在,則提示“該使用者不存在”
-
對應的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 修改學員資訊
- 需求分析
-
使用者輸入目標學員姓名
-
檢查這個學員是否存在
2.1 如果存在,則修改這位學員的資訊,例如手機號
2.2 如果不存在,則報錯
-
對應的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 查詢學員資訊
- 需求分析
-
使用者輸入目標學員姓名
-
檢查學員是否存在
2.1 如果存在,則顯示這個學員的資訊
2.2 如果不存在,則報錯提示
-
對應的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('輸入錯誤,請重新輸入!')