本文实例为大家分享了python函数实现学员管理系统的具体代码,供大家参考,具体内容如下
这个是一个简单的管理程序
输入姓名,年龄,性别(也可以添加其他类别例如性取向),然后以列表的形式保存(默认为空列表)。功能如下:
- 按1添加成员
- 按2删除成员
- 按3修改成员信息(目前不包括姓名但是可以添加)
- 按4检索并打印某个成员的全部信息
- 按5打印全部成员的信息
- 按6退出程序
大概就是这样子。下面是代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
import time
def main():
'''主函數'''
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():
'''顯示系統功能'''
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():
'''修改現有人物信息'''
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():
'''查找某個人物的信息'''
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():
'''統一name首字母大寫且左對齊'''
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()
|
简单解释一下:
- 由于python中没有switch case语句所以这里用if elif代替,实现按键选择功能的需求
- 信息的保存是用列表和字典嵌套实现,即形如 [{},{},{}] 的格式,每个字典里面保存一个人员的信息。
- 函数modify_op()是为了美化显示,实现把所有成员的名字取等长,首字母大写且左对齐输出。例如norn和scotti,后者6个字符前者4个字符,这样就会用空格把norn补为6个字符。函数中大量出现的strip()和title()就是为此才使用的
- 用了一些代码来避免bug,例如排除大小写的影响(vert和vert),排除重名的可能性,排除选择程序功能时输入1-6之外的字符导致报错,排除各种的死循环等。
- 由于程序没有保存信息到文本文件的功能,所以退出程序之后所有的信息都会消失。因为我是用的是谷歌的云ide,不知道保存文件路径怎么写(/gdrive/file.txt?)。so啥时候自己的电脑能拿来用了就会加上的
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/bluenessdrops/article/details/104465767