python学生姓名添加删除_python学生管理系统(增删改查以及菜单返回操作)

这篇博客介绍了如何使用Python实现一个学生管理系统,包括增加、显示所有、查询和删除学生信息的功能。通过建立姓名、电话、QQ和邮箱四个列表来存储学生数据,并提供友好的交互界面供用户操作。
摘要由CSDN通过智能技术生成

(一)功能要求

功能:

1.能循环输入内容

2.展示功能

-1.新增名片

-2.显示全部

-3.查询名片

-0.退出系统

3.让用户输入希望执行的操作 例如输入1,2,3,0

4.新增列表

- 提示用户输入姓名,

- 输入电话

- 输入qq号

- 输入邮箱

- 提示新增名片成功。

5.显示全部

- 将所有的名片打印出来,格式如下:

姓名            电话            QQ                    邮箱

zs            110            1337765076            110@qq.com

6.查询名片

- 提示请输入要搜索查找用户的姓名

- 如果用户存在--->显示用户的信息

-提示用户【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作。

-修改操作,可以修改用户名,电话,qq、邮箱。

- 删除操作,将用户删除。

- 返回上一级操作,回到欢迎界面,让用户继续操作。

- 如果用户不存在-->提示查找的用户不存在。

(二)我的思路

(1)一个人有四个信息

(2)建立相应的四个信息列表(姓名列表,电话列表,QQ列表,邮箱列表),各列表同一索引是同一个人的四项信息

(3)添加一个人的信息时,各列表同时append各自的信息

(4)展示全部内容时,根据各列表长度,将各列表同时遍历输出

(5)修改一个人的信息时,用 name.index(想修改的姓名)找到下标,将这一索引给送给各列表进行同时修改

(6)删除同理,同一下标全部删除

(7)返回菜单就重新调用一次函数

(三)代码实现

开始这个对齐函数,keyi可以先不管,对本文影响不大

若想搞明白  那么:   https://blog.csdn.net/sinat_38068807/article/details/85804217

# 令输出格式对齐的函数,我们先不理他,先看思路

# 若想搞明白 那么 https://blog.csdn.net/sinat_38068807/article/details/85804217

def align(str1, space, align='left'):

length = len(str1.encode('gbk'))

space = space - length if space > length else 0

if align == 'left':

str1 = str1 + ' '*space

elif align == 'right':

str1 = ' ' * space + str1

elif align == 'center':

str1 = ' ' * (space // 2) + str1 + ' ' * (space - space // 2)

return str1

# 各列表每次添加、删除、展示都会一同操作,同一人的信息在各列表的同一索引

name_lst = []

tel_lst = []

qq_lst = []

mail_lst = []

# 定义为函数方便返回主菜单,需要返回的时候重新调用一次函数就好了

def func():

while True:

print('-1.新增名片\n-2.显示全部\n-3.查询名片\n-0.退出系统') # 展示信息

choice = input('请输入操作序号:\n')

# 判断序号合法

while not ('0' <= choice <= '3'):

choice = input('输入错误,请重新输入:\n')

# 根据序号进行相应功能操作

if choice == '0': # 0.退出系统

print('感谢使用!')

break

elif choice == '1': # 1.新增名片

print('您选择新增列表,请根据提示输入内容')

add_name = input('请输入姓名')

while not add_name: # 姓名合法

add_name = input('姓名不能为空,请重新输入:')

name_lst.append(add_name)

tel_lst.append(input('请输入电话号码:'))

qq_lst.append(input('请输入QQ号:'))

mail_lst.append(input('请输入邮箱:'))

print('新增名片成功。')

elif choice == '2': # 2.显示全部

print(align('姓名',30),align('电话',30),align('QQ',30),align('邮箱',30))

# 每个列表遍历一遍,因为每个列表同一下标就是同一个人的信息

i = 0

while i < len(name_lst):

print(align(name_lst[i],30), align(tel_lst[i],30),

align(qq_lst[i],30), align(mail_lst[i],30))

i += 1

elif choice == '3': # 3.查询名片

find_name = input('请输入要查找的姓名:\n')

while not (find_name in name_lst): # 判断查找姓名输入合法

find_name = input('您输入的客户不存在,请重新输入(输入Q或q退回主菜单):')

if find_name == 'q' or find_name == 'Q': # 为避免用户一直输入不对,可退出

func()

# 找到要查找的名字在姓名列表的索引,然后将各列表对应索引输出

name_index = name_lst.index(find_name)

print(align('姓名', 30), align('电话', 30), align('QQ', 30), align('邮箱', 30))

print(align(name_lst[name_index], 30), align(tel_lst[name_index], 30),

align(qq_lst[name_index], 30), align(mail_lst[name_index], 30))

operate_num = input('您可以进行以下操作:\n【1】修改 【2】删除 '

'【0】返回上一级菜单\n请选择要执行的操作:')

if operate_num == '0': # 【0】返回上一级菜单

func()

elif operate_num == '1': # 【1】修改

aim_name = input('您想要修改谁:')

# 根据名字找到此人信息在各列表中的索引,集体修改各列表同一索引内容

while not(name_lst.index(aim_name)): # 该人不在则提示重新输入

aim_name = input('该人不存在,重新输入或输入Q、q退回主菜单:')

if aim_name == 'q' or aim_name == 'Q':

func()

modified_index = name_lst.index(aim_name)

name_lst[modified_index] = input('姓名修改为:')

while not name_lst[modified_index]:

name_lst[modified_index] = input('姓名不能为空,请重新输入:')

tel_lst[modified_index] = input('电话修改为:')

qq_lst[modified_index] = input('QQ修改为:')

mail_lst[modified_index] = input('邮箱修改为:')

elif operate_num == '2': # 【2】删除

del_name = input('您想要删除谁:')

while not(del_name in name_lst):

del_name = input('该人不存在,重新输入或输入Q、q退回主菜单:')

if del_name == 'q' or del_name == 'Q':

func()

# 根据名字找到此人信息在各列表中的索引,集体删除各列表同一索引内容

del_index = name_lst.index(del_name)

del name_lst[del_index]

del tel_lst[del_index]

del qq_lst[del_index]

del mail_lst[del_index]

func()

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值