python - 我怎样才能简化我的代码(Python登录系统)?

标签 python python-3.x

我是一名新编码员。这是我第一个使用 python 登录系统的代码。如何简化我的代码而不丢失任何功能,例如错误的用户名和错误的密码等?

username = "zaphod"
password = "helloworld42"
username2 = "mozzie"
password2 = "mozzietheaussie"
userUsername = input("Hello, What is your username? \n")
UserPassword = input(print("Hello", userUsername, "What is your password? "))
if userUsername == username:
    if password == UserPassword:
        print("Hello", userUsername, "Welcome home")
if userUsername == username:
    if UserPassword != password:
        print("Wrong Password")
if userUsername == username2:
    if UserPassword != password2:
        print("Wrong Password")
if UserPassword == password:
    if userUsername != username:
        print("Wrong Username")
if UserPassword == password2:
    if userUsername != username2:
        print("Wrong Username")
if userUsername == username2:
    if UserPassword == password2:
        print("Hello", userUsername,"Welcome Home")
if userUsername == username:
    if UserPassword == password2:
        print("Are you gonna trick me pal xd")
if userUsername == username2:
    if UserPassword == password:
        print("Are you gonna trick me pal xd")
if userUsername != username:
    if userUsername != username2:
        if UserPassword != password:
            if UserPassword != password2:
                print("Wrong credidentals")

最佳答案

您可以将凭据放入dict中并检查用户名是否存在且与密码匹配

credentials = {'zaphod': 'helloworld42',
           'mozzie': 'mozzietheaussie'}

user_name = input('Hello, what is your username?\n')
password = input(f'Hello {user_name}, what is your password?\n')

pas = credentials.get(user_name) # returns None if the user name doesn't exists
if not pas:
    print('Wrong Username')
elif pas != password:
    print('Wrong Password')
else:
    print(f'Hello {user_name}, welcome home')

print("你要骗我吗, friend xd")似乎是不必要的,但是你可以通过修改elif来添加它

elif pas != password:
    if password in credentials.values():
        print('Are you gonna trick me pal xd')
    else:
        print('Wrong Password')

关于python - 我怎样才能简化我的代码(Python登录系统)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60472959/

相关文章:

python - QMetaObject::invokeMethod 找不到带参数的方法

python - 具有三个 3x3 内核的 6x6 数组的 2D 互相关

python - 传递 **kwargs 和尾随逗号的语法错误

Python 扩展在处理大型列表时创建无效指针

python - 转置列表子集维度?

python datetime strptime 通配符

python - 返回 ForeignKey 字段模型的 QuerySet 的 Django .values_list() 替代方案?

python-3.x - Python3-pip3 : AttributeError: '_NamespacePath' object has no attribute 'sort'

arrays - 将平面拟合到二维数组

python - 为什么我的代码给出了错误的变量值?