1 #工资查询 2 def info_search(usr_name): 3 salary = -10000 4 with open('info.txt','r') as f: 5 for line in f: 6 if usr_name==line.split()[0]: 7 salary=float(line.split()[1]) 8 break 9 return salary 10 def info_change(usr_name,salary): 11 salary_num=float(salary) 12 with open('info.txt', 'r') as f: 13 data=f.readlines() 14 with open('info.txt','w') as f: 15 if salary_num>0: 16 f_pos=0 17 for line in data: 18 if usr_name in line: 19 line=' '.join([usr_name,salary])+' ' 20 f.write(line) 21 return True 22 else: 23 return False 24 def info_add(usr_name,salary): 25 if info_search(usr_name)<0: 26 with open('info.txt', 'a') as f: 27 line=' '+' '.join([usr_name,salary]) 28 f.write(line) 29 return True 30 else: 31 return False 32 def Salary_Manager(): 33 help_info=''' 34 1. 查询员工工资 35 2. 修改员工工资 36 3. 增加新员工记录 37 4. 退出''' 38 while True: 39 print(help_info) 40 #输入有效性检查 41 try: 42 usr_select = int(input("请选择(Please select):")) 43 except ValueError: 44 print('请输入1~4之间的整数。(Please input an integer between 1 and 4.)') 45 continue 46 if usr_select not in [1,2,3,4]: 47 print('请输入1~4之间的整数。(Please input an integer between 1 and 4.)') 48 continue 49 #查询工资 50 if usr_select==1: 51 usr_name=input("请输入要查询的员工姓名(例如:Alex)") 52 usr_salary=info_search(usr_name) 53 if usr_salary>0: 54 print("%s的工资是%s"%(usr_name,usr_salary)) 55 else: 56 print('没有找到该员工,请检查。') 57 #修改工资 58 elif usr_select==2: 59 usr_salary=-10000 60 items=input('请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):') 61 #有效性检查及工资修改 62 if len(items.split())==2: 63 usr_name=items.split()[0] 64 usr_salary=items.split()[1] 65 if usr_salary.isnumeric() and float(usr_salary)>0: 66 if info_change(usr_name, usr_salary): 67 print('修改成功。') 68 else: 69 print('输入格式有误或不存该员工。') 70 else: 71 print('工资输入有误,请检查。') 72 else: 73 print('输入格式有误。') 74 75 #增加员工记录 76 elif usr_select==3: 77 items=input('请输入要增加的员工姓名和工资,用空格分割(例如:Eric 100000):') 78 #有效性检查及人员增加 79 if len(items.split())==2: 80 usr_name=items.split()[0] 81 usr_salary=items.split()[1] 82 if usr_salary.isnumeric(): 83 if info_add(usr_name, usr_salary): 84 print('增加成功!') 85 else: 86 print('输入格式有误或员工已存在。') 87 else: 88 print('工资输入有误,请检查。') 89 else: 90 print('输入格式有误。') 91 pass 92 #退出 93 else: 94 print("再见。Bye.") 95 exit() 96 Salary_Manager()