Python函數(shù)實(shí)現(xiàn)學(xué)員管理系統(tǒng)
本文實(shí)例為大家分享了Python函數(shù)實(shí)現(xiàn)學(xué)員管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
這個(gè)是一個(gè)簡(jiǎn)單的管理程序
輸入姓名,年齡,性別(也可以添加其他類別例如性取向),然后以列表的形式保存(默認(rèn)為空列表)。功能如下:

- 按1添加成員
- 按2刪除成員
- 按3修改成員信息(目前不包括姓名但是可以添加)
- 按4檢索并打印某個(gè)成員的全部信息
- 按5打印全部成員的信息
- 按6退出程序
大概就是這樣子。下面是代碼:
import time
def main():
'''主函數(shù)'''
while True:
sl(),select_function()
sl()
user_input = input('select your operation: ')
if user_input == '1':
sl(),add_op()
elif user_input == '2':
sl(),delete_op()
elif user_input == '3':
sl(),alter_op()
elif user_input == '4':
sl(),search_op()
elif user_input == '5':
sl(),print_op()
elif user_input == '6':
print('\n system quit.')
break
else:
sl(),print('\n plz enter correct number.')
def select_function():
'''顯示系統(tǒng)功能'''
print("\n1.add mbr\n2.delete mbr\n3.change info\
\n4.check info\n5.prt\'l info\n6.exit sys\n")
sl()
def store_new_info():
a = input('enter name: ').title()
b = input('enter age: ').title()
c = input('enter gender: ').title()
return a,b,c
def add_op():
'''添加新人'''
name,age,gender = store_new_info()
for i in all_info:
if name == i['name'].strip():
print(f'{name} is existed.retry plz')
break
else:
dict_inf = {}
dict_inf['name'] = name
dict_inf['age'] = age
dict_inf['gender'] = gender
all_info.append(dict_inf)
print(f'{name} added.')
def delete_op():
'''刪除已有人物'''
del_nam = input('type the name to del:').title()
for i in all_info:
if del_nam == i['name'].strip():
all_info.remove(i)
sl(),print(f'{del_nam} is removed.')
else:
sl(),print(f'no {del_nam} in list now.')
def alter_op():
'''修改現(xiàn)有人物信息'''
alter_nam = input('type the name who needs change: ').title()
for i in all_info:
if alter_nam != i['name'].strip():
continue
else:
i['age'] = input('type new age: ')
i['gender'] = input('type new gender: ')
break
else:
sl(),print(f'no {alter_nam} in list.')
def search_op():
'''查找某個(gè)人物的信息'''
se_num = input('type name to search: ').strip().title()
for i in all_info:
if se_num != i['name'].strip():
continue
else:
sl(),print(i)
break
def modify_op():
'''統(tǒng)一name首字母大寫且左對(duì)齊'''
b = 0
for i in range(len(all_info)):
a = len(all_info[i].get('name').strip())
b = max(a,b)
for i in range(len(all_info)):
all_info[i]['name'] = all_info[i].get('name').strip().title().ljust(b,' ')
all_info[i]['gender'] = all_info[i].get('gender').strip().title().ljust(6,' ')
def print_op():
'''輸出所有人物的全部信息'''
modify_op()
for i in all_info:
print('\n',i,'\n')
def sl():
time.sleep(0.5)
all_info = []
main()
簡(jiǎn)單解釋一下:
- 由于python中沒有switch case語(yǔ)句所以這里用if elif代替,實(shí)現(xiàn)按鍵選擇功能的需求
- 信息的保存是用列表和字典嵌套實(shí)現(xiàn),即形如 [{},{},{}] 的格式,每個(gè)字典里面保存一個(gè)人員的信息。
- 函數(shù)modify_op()是為了美化顯示,實(shí)現(xiàn)把所有成員的名字取等長(zhǎng),首字母大寫且左對(duì)齊輸出。例如norn和scotti,后者6個(gè)字符前者4個(gè)字符,這樣就會(huì)用空格把norn補(bǔ)為6個(gè)字符。函數(shù)中大量出現(xiàn)的strip()和title()就是為此才使用的
- 用了一些代碼來(lái)避免bug,例如排除大小寫的影響(vert和VERT),排除重名的可能性,排除選擇程序功能時(shí)輸入1-6之外的字符導(dǎo)致報(bào)錯(cuò),排除各種的死循環(huán)等。
- 由于程序沒有保存信息到文本文件的功能,所以退出程序之后所有的信息都會(huì)消失。因?yàn)槲沂怯玫氖枪雀璧脑苅de,不知道保存文件路徑怎么寫(/gdrive/file.txt?)。so啥時(shí)候自己的電腦能拿來(lái)用了就會(huì)加上的
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python利用緩存流實(shí)現(xiàn)壓縮PDF文件
在Python中,有許多庫(kù)可以用來(lái)壓縮PDF文件,其中最常用的是PyPDF2和PDFMiner,本文將為大家介紹一個(gè)新的方法,即使用緩存流壓縮PDF文件,感興趣的可以了解下2023-08-08
使用Python求解最大公約數(shù)的實(shí)現(xiàn)方法
這篇文章主要介紹了使用Python求解最大公約數(shù)的實(shí)現(xiàn)方法,包括用Python表示歐幾里得算法和Stein算法的求解原理,需要的朋友可以參考下2015-08-08
聊聊Python對(duì)CSV文件的讀取與寫入問(wèn)題
今天抽空給大家介紹下Python對(duì)CSV文件的讀取與寫入問(wèn)題,首先需要在python環(huán)境里導(dǎo)入csv板塊,下面就通過(guò)實(shí)例代碼給大家詳細(xì)介紹下,感興趣的朋友跟隨小編一起看看吧2021-11-11
Python實(shí)現(xiàn)八皇后問(wèn)題示例代碼
這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)八皇后問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12

