练习 # 1.统计列表中每个数据值出现的次数并组织成字典战士
# eg: l1 = ['jason','jason','kevin','oscar']
# 结果:{'jason':2,'kevin':1,'oscar':1}
# 真实数据
l1 = ['jason', 'jason', 'kevin', 'oscar', 'kevin', 'tony', 'kevin']
d1 = {} # 创建一个空字典保存结果
for i in l1: # 循环列表,拿出每一个数据值
if i in d1: # 判断当前数据值是否在字典里
d1[i] += 1 # 存在则次数+1
else:
d1[i] = 1 # 不存在则新建,值等于1
print(d1)
# 2.编写员工管理系统
# 1.添加员工信息
# 2.修改员工薪资
# 3.查看指定员工
# 4.查看所有员工
# 5.删除员工数据
# 提示:用户数据有编号、姓名、年龄、岗位、薪资
# 数据格式采用字典:思考如何精准定位具体数据>>>:用户编号的作用
user_dict = {}
while True:
choice = input("""
1.添加员工信息
2.修改员工薪资
3.查看指定员工
4.查看所有员工
5.删除员工数据
6.退出管理系统
请输入您要使用的功能:""").strip()
if choice == '1':
print('n--添加员工信息--n')
number = input('number:').strip()
if not (user_dict.get(number) is None): # 判断输入的编号是否存在
print('该编号以占用')
continue
name = input('name(letter):').strip()
age = input('age(num):').strip()
post = input('post(letter):').strip()
pay = input('pay(num):').strip()
if age.isdigit() and pay.isdigit() and (not name.isdigit()) and (not post.isdigit()): # 判断用户输入的数据格式是否正确
user_dict[number] = {'name': name, 'age': age, 'post': post, 'pay': pay} # 以编号为键,用户信息字典为值,保存在user_dict中
print(f'员工{name}添加成功')
else:
print('n数据格式错误')
elif choice == '2':
print('n--修改员工薪资--n')
post_num = input('希望修改薪资员工的编号:').strip()
if not (user_dict.get(post_num) is None): # 判断编号对应员工是否存在
print(f'员工姓名:{user_dict[post_num]["name"]},当前薪资:{user_dict[post_num]["pay"]}')
set_post = input('新的薪资:').strip()
if set_post.isdigit(): # 判断新的薪资是否是数字
user_dict[post_num]['pay'] = set_post
else:
print('修改失败')
else:
print('该员工不存在')
elif choice == '3':
print('n--查看指定员工--n')
check_num = input('想要查看员工的编号:').strip()
if not (user_dict.get(check_num) is None): # 判断编号对应员工是否存在
print(f'number:{check_num}')
for k, v in user_dict.get(check_num).items(): # 循环该员工的信息
print(f'{k}:{v}')
else:
print('该员工不存在')
elif choice == '4':
print('n--查看所有员工--n')
for k, v in user_dict.items(): # 循环大字典,取出编号和小字典
print(f'number:{k}') # 先打印编号
for k1, v1 in v.items(): # 循环小字典
print(f'{k1}:{v1}', end='t') # 打印字典内信息
print('n')
elif choice == '5':
print('n--删除员工数据--n')
del_num = input('输入想要删除员工编号:')
if not (user_dict.get(del_num) is None): # 判断编号对应员工是否存在
sure = input(f"是否删除以下员工name:{user_dict[del_num]['name']}(确定输入y)") # 打印员工姓名并询问是否确定删除
if sure.lower() == 'y': # 如确定则删除
del_dict = user_dict.pop(del_num)
print(f'员工{del_dict["name"]}已删除')
else:
print('取消删除')
elif choice == '6':
print('n--退出管理系统--n')
break
else:
print('输入正确的数字')