项目场景:
实验课作业问题描述:
用户登陆系统时需要首先输入账号,如果账号不存在,输出“Wrong User”并结束程序;账号正确时,再输入密码,验证账号密码与已给定的账号密码是否一致,如果一致,输出“Success”,否则输出“Fail”以及剩余尝试次数。总尝试次数为3次,如果3次均输入错误,输出“Login Denied”。
原因分析:
代码一由于键对应的值是一个一维列表,数据处理起来比较复杂,
可以用keys()获取键,用values()获取值,但是要转换为列表,方便使用
因为他们返回的不是列表
dic = {
"aaa": ["123456", 10000], "bbb": ["888888", 5000], "ccc": ["333333", 3000]}
dic.keys()
print(dic.keys())
print(dic.values())
print(list(dic.keys()))
print(list(dic.values()))
代码二,由于键值只用了一个所以我们建立字典的时候只使用一个就行了,这样编程就变得很简单了。
解决方案:
代码一:
dic = {
"aaa": ["123456", 10000], "bbb": ["888888", 5000], "ccc": ["333333", 3000]}
flag = 3
account = input()
if account in dic:
while(flag > 0):
# 用户1
if account == list(dic.keys())[0]:
mima = input()
if mima == list(dic.values())[0][0]:
print("Success")
break
else:
flag = flag - 1
if flag > 0:
print("Fail,{} Times Left".format(flag))
# 用户2
elif account == list(dic.keys())[1]:
mima = input()
if mima == list(dic.values())[1][0]:
print("Success")
break
else:
flag = flag - 1
if flag > 0:
print("Fail,{} Times Left".format(flag))
# 用户3
elif account == list(dic.keys())[2]:
mima = input()
if mima == list(dic.values())[2][0]:
print("Success")
break
else:
flag = flag - 1
if flag > 0:
print("Fail,{} Times Left".format(flag))
else:
print("Wrong User")
break
if flag == 0:
print("Login Denied")
代码二
dic={
"aaa":'123456',"bbb":'888888',"ccc":'333333'}
x=3
n=input()
if n in dic:
while x>0:
a=input()
if a==dic[n]:
print("Success")
break
else:
x-=1
if x>0:
print("Fail,{} Times Left".format(x))
if x==0:
print("Login Denied")
else:
print("Wrong User")
知识点:
keys()和values()函数
dic = {
"aaa": ["123456", 10000], "bbb": ["888888", 5000], "ccc": ["333333", 3000]}
dic.keys()
print(dic.keys())
print(dic.values())
print(list(dic.keys()))
print(list(dic.values()))