用户登录(字典)

项目场景:

实验课作业

问题描述:

用户登陆系统时需要首先输入账号,如果账号不存在,输出“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()))

在这里插入图片描述

Guess you like

Origin blog.csdn.net/qq_53144843/article/details/120573648