编写可供用户查询的员工信息表(一)
编写可供用户查询的员工信息表
要求:
1.需要用户认证
2.员工信息表文件内容:
ID Name Department Phone
3.认证成功后查询正确信息
代码:
#!/usr/bin/env python #声名python 解释器,env可根据环境寻找并运行默认版本
authen_dic = {"LiuPn":123,"WangXiaoMing":123456,"HaoXiaoBei":12345678}#定义一个字典存放可登陆的用户及密码
usr_list = list(authen_dic.keys())#操作字典转生成一个用户列表
while True:
input_usr = input("Please input your username: ")#用户交互第一步:请输入用户名
if usr_list.count(input_usr) >= 1:#假设输入的用户名在用户名列表里出现次数大于等于1
input_passwd = input("Please input %s's password: "% input_usr)#用户交互第二步:请输入密码
passwd = str(authen_dic[input_usr])#操作字典取出用户密码并格式化为字符串
while input_passwd != passwd:#假设密码不相等时进入循环
input_passwd = input("Password is incorrect!Try again:")
else:#对应前面,密码不正确时
print("Logon successful!Welcome")#打印成功信息
while True:#登陆成功后进入while循环
match_yes = 0#定义一个变量初始值与后面的赋值对应
sch_input = input("\033[1;34;42mPlease enter what the information you need to search: ")
#请输入你想查找的信息
InfoOfEmTab_file = open("TheInfoOfEmployeeTable.txt")#对文件进行操作,打开员工信息表文件
while True:
line = InfoOfEmTab_file.readline()#读取文件的每一行
if len(line) == 0: break#读取到文件结尾后结束退出
if sch_input in line:#假设用户输入的内容在信息表文件的其中一行中
print("\033[1;31mMarch Item: \033[1;36m%s" % line)#格式化输出打印信息
match_yes = 1#满足条件后给变量赋予新值(注:变量赋值不输出任何信息)
if match_yes == 0:#变量值如果等于初始值则打印信息(这里变量初始值对应上一条件里给变量赋予了一个新的值,所以可以理解成变量值不等于1,即用户输入的内容不在信息表的任一行里)
print("\033[1;31mNo match items had found!Please check it and try again.\n")
else:#对应之前用户名输入不正确
print("The user name:%s is not found. Please re-enter your username." % input_usr)
效果预览:
欢迎大家关注我的博客或者公证号:https://home.cnblogs.com/u/Python1234/ Python学习交流
也欢迎大家加入我的千人交流答疑群:125240963