首页 > 解决方案 > 如何在 Python 中使用 dict 制作登录系统

问题描述

我想用字典登录系统。这段代码可以工作,但如果我在登录屏幕上写一个不同的用户名,程序会出错。

database={'name': '1234', 'name2': '5678', 'name3': '9012'}

def log():
    name = input('Enter username: ')
    ask = input('Enter pin: ')
    if ask in database[name]:
        print ('Welcome', name)
    else:
        print ('Invalid code')
log()

标签: pythondictionaryauthentication

解决方案


您正在查询而database[name]没有首先检查name. database而是这样做:

database={'name': '1234', 'name2': '5678', 'name3': '9012'}

def log():
    name = input('Enter username: ')
    ask = input('Enter pin: ')
    if name in database:
        if ask == database[name]: # changed this to an 'equals' rather than 'in'
            print ('Welcome', name)
        else:
            print ('Pin wrong!')
    else:
        print ('Username does not exist.')

log()

推荐阅读