You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
3.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import re
import os
info = []
boys = []
girls = []
# 定义功能界面函数
def info_print():
print("请选择如下功能:")
print("1添加学员")
print("2删除学员")
print("3修改学员信息")
print("4查询学员信息")
print("5显示所有学员信息")
print("6保存学员信息")
print("7退出系统")
def add_info():
new_name = input("请输入您的姓名:")
new_sex = input("请输入您的性别:")
new_num = input("请输入您的电话:")
global info
for i in info:
if new_name == i['name']:
print('用户已存在')
return
info_dict = {'name': new_name, 'sex': new_sex, 'num': new_num}
info.append(info_dict)
print("{},{},{}".format(new_name, new_sex, new_num))
def del_info():
del_name = input('请输入要删除的学员的姓名:')
global info
for i in info:
if del_name == i['name']:
info.remove(i)
break
else:
print('该学员不存在')
print(info)
def modify_info():
modify_name = input('请输入要修改的学员的姓名:')
global info
for i in info:
if modify_name == i['name']:
i['name'] = input('请输入新的姓名')
i['sex'] = input('请输入性别')
i['num'] = input('请输入新的手机号:')
print("姓名:{},性别{},手机号{}".format(i['name'], i['sex'], i['num']))
break
else:
print('该学员不存在')
print(info)
def search_info():
search_name = input('请输入要查找的学员姓名:')
global info
for i in info:
if search_name == i['name']:
print('查找到的学员信息如下:')
print(f"姓名是{i['name']},性别为:{i['sex']},手机号是{i['num']}")
break
else:
print('查无此人......')
def fuzzy_finder(key, data):
suggestions = []
pattern = '.*%s.*' % key
regex = re.compile(pattern)
for item in data:
match = regex.search(item['name'])
if match:
suggestions.append(item)
return suggestions
def print_all():
myFind = int(input("输入操作代码:"))
if myFind == 1:
print('姓名\t性别\t手机号')
for i in info:
print(f"姓名是{i['name']},性别为:{i['sex']},手机号是{i['tel']}")
elif myFind == 2:
create_file()
else:
print("输入有误")
while True:
info_print()
user_num = int(input('请输入功能序号:'))
if user_num == 1:
add_info()
elif user_num == 2:
del_info()
elif user_num == 3:
modify_info()
elif user_num == 4:
print('请选择查找方式:\n1.精准查找\n2.模糊查找\n3.统计男女\n0.退出')
myFind = int(input())
if myFind == 1:
search_info()
elif myFind == 2:
findName = input('请输入要查找的学员姓名:')
result = fuzzy_finder(findName, info)
print(result)
elif myFind == 3:
sex_ratio()
elif myFind == 0:
print('返回主菜单')
continue
else:
print('输入有误,已返回主菜单')
continue
elif user_num == 5:
print_all()
elif myFind == 6:
delete_file()
elif user_num == 0:
exit_flag = input('确定要退出吗? yes or no')
if exit_flag == 'yes':
print('已退出程序')
break
elif exit_flag == 'no':
print('返回主菜单')
continue
else:
print('输入有误,已返回主菜单')
continue
else:
print('输入的功能序号有误')
continue