实现一个可以增删查的系统,主要是为了巩固 python 基础中的方法、字典、循环、判断等知识
打印菜单
效果如下

实现方法
print("="*12,"学员管理系统","="*14) print("{0:1}{1:13}{2:15}".format(" ","1.查看学员信息","2.添加学员信息")) print("{0:1}{1:13}{2:15}".format(" ","3.删除学员信息","4.退出系统")) print("="*40)
|
format 函数可以接受不限个参数,位置可以不按顺序。
此外我们定义一个变量来接收输入的值,例如1、2、3、4
但是,这样每次我们都要重新执行程序,这样非常不方便,因此我们可以设置一个死循环.
while 1: print("="*12,"学员管理系统","="*14) print("{0:1}{1:13}{2:15}".format(" ","1.查看学员信息","2.添加学员信息")) print("{0:1}{1:13}{2:15}".format(" ","3.删除学员信息","4.退出系统")) print("="*40) key = input("请输入对应的选择:")
|
这样就可以每次执行完不停止进程而输出菜单了,另外我们要获取输入的值之后要进行判断.
if key == "1": print("="*12,"学员信息浏览","="*14) input("按任意键继续...") elif key == "2": print("="*12,"学员信息添加","="*14) input("按任意键继续...") elif key == "3": print("="*12,"删除学员信息","="*14) input("按任意键继续...") elif key == "4": print("=" * 12, "退出系统", "=" * 14) break else: print("="*12,"无效的键盘输入","="*14)
|
初始化数据
定义一个字典,加入一些数据.
stulist = [ {'name':'张三','age':20,'classid':'java'}, {'name':'李四','age':25,'classid':'java'}, {'name':'王五','age':15,'classid':'java'}, ]
|
查看信息
查看学员信息要考虑到假如列表没有数据的情况,比如数据被删除完了,这个时候我们需要判断下 stulist 这个字典里还有没有数据,我们定义一个方法做以下事情:
1.判断字典是否为空,如果是空则输出信息
2.否则输入列表,这里要按一定的格式输出
def showStu(stulist): if len(stulist) ==0: print("="*12,"没有学员信息可以输出","="*14) return print("|{0:<5}|{1:<10}|{2:<5}|{3:10}|".format("sid","name","age","classid")) print("-"*40) for i in range(len(stulist)): print("|{0:<5}|{1:<10}|{2:<5}|{3:10}|".format(i+1, stulist[i]['name'], stulist[i]['age'], stulist[i]['classid'])) print("-" * 40)
|
添加信息
如图所示

实现方法,当判断输入的值为2时,我们新建一个字典,然后往该字典添加3个值,并将该字典追加到stulist 中去并输出添加后的字典数据
elif key == "2": print("="*12,"学员信息添加","="*14) stu = {} stu['name'] =input("请输入你要添加的姓名:") stu['age'] = input("请输入要添加的年龄:") stu['classid'] = input("请输入要添加的班级信息:") stulist.append(stu) showStu(stulist) input("按回车键继续...")
|
删除信息
如图所示

实现方法,当输入值=3,获取需要删除的 id,因为是字典,我们需要拿到其下标,但是字典的下标是从0开始的,因此,我们需要-1,而又因为字符串的关系,因此这里我们需要强制转换下
elif key == "3": print("="*12,"删除学员信息","="*14) sid = input("请输入你需要删除的 id 号:") del stulist[int(sid)-1] showStu(stulist) input("按回车键继续...")
|
退出系统
如图所示

实现方法,退出很好实现,当输入4时我们就跳出死循环就可以了
elif key == "4": print("=" * 12, "退出系统", "=" * 14) break
|
完整代码
stulist = [ {'name':'张三','age':20,'classid':'java'}, {'name':'李四','age':25,'classid':'java'}, {'name':'王五','age':15,'classid':'java'}, ]
def showStu(stulist):
if len(stulist) ==0: print("="*12,"没有学员信息可以输出","="*14) return
print("|{0:<5}|{1:<10}|{2:<5}|{3:10}|".format("sid","name","age","classid")) print("-"*40) for i in range(len(stulist)): print("|{0:<5}|{1:<10}|{2:<5}|{3:10}|".format(i+1, stulist[i]['name'], stulist[i]['age'], stulist[i]['classid'])) print("-" * 40)
def main(): while 1:
print("="*12,"学员管理系统","="*14) print("{0:1}{1:13}{2:15}".format(" ","1.查看学员信息","2.添加学员信息")) print("{0:1}{1:13}{2:15}".format(" ","3.删除学员信息","4.退出系统")) print("="*40)
key = input("请输入对应的选择:")
if key == "1": print("="*12,"学员信息浏览","="*14) showStu(stulist) input("按回车键继续...")
elif key == "2": print("="*12,"学员信息添加","="*14)
stu = {} stu['name'] =input("请输入你要添加的姓名:") stu['age'] = input("请输入要添加的年龄:") stu['classid'] = input("请输入要添加的班级信息:") stulist.append(stu) showStu(stulist)
input("按回车键继续...")
elif key == "3": print("="*12,"删除学员信息","="*14) sid = input("请输入你需要删除的 id 号:")
del stulist[int(sid)-1] showStu(stulist) input("按回车键继续...")
elif key == "4": print("=" * 12, "退出系统", "=" * 14) break
else:
print("="*12,"无效的键盘输入","="*14)
if __name__ == '__main__': main()
|
拓展
那么如何进行如图所示修改操作呢?

既然是对字典进行操作,步骤应该如下:
1.获取需要修改的字典下标,然后将其替换,怎么替换呢?我们稍微修改下程序,判断输入的为4则修改,先给出当前已有的列表,然后要求用户输入 id,当然这个 id 是需要-1的,并且必须是int 类型,否则会报错,然后我们获取 stulist对应 id 的三个参数去进行输入即可。
elif key == "4": showStu(stulist) sid = int(input("请输入你需要修改的 id 号:"))-1 stulist[sid]["name"] = input("请输入你要修改的姓名:") stulist[sid]["age"] = input("请输入你要修改的姓名:") stulist[sid]["classid"] = input("请输入你要添加的班级信息:") showStu(stulist)
|
GitHub code
文章作者:阿文
版权声明:本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0 许可协议。转载请注明来自
阿文的博客!