欢迎。拒绝!!!按回车键退出

welcome. denied!!! press enter to quit

我试图为我的家人创建一个用户名和密码程序,但是当我打开它时它显示:

Welcome.
Denied!!!
Press enter to quit.

谁能解决我的问题?代码如下:

print ("Welcome.")

username = ("Please enter your username.")

if username == ("mom, savanna, joseph"):

    print ("Granted.")

    password = input ("Please enter your password.")

    if password == ("1975, 2000, jesus"):

        print ("Granted.")

        question = ("Do you like it?")

        if question == ("yes"):

            print ("I thought you would.")

        if question == ("no"):

            print ("I guess I could do better")

        else:

            print ("error")

    else:

        print ("Denied!!!")

else:

    print ("Denied!!!")

input ("press enter to quit")

你问的是 if username == ("mom, savanna, joseph") 而不是 if username in ("mom, savanna, joseph")

如果你在询问时输入 "mom" 作为用户名,这就像比较这个

if "mom" == ("mom, savanna, joseph"):

("mom, savanna, joseph")"mom" 不相等

检查项目是否在列表中使用 in 关键字

>>> x = [0, 1, 2, 3, 4]
>>> 3 in x
True

你在检查时也做了同样的事情 if password ==

@Alexander O'Mara 也是正确的,您从未对用户名

执行 input()

您的主要问题在这一行:

username = ("Please enter your username.")

我想你的意思是要在那里调用 input 函数。

username = input("Please enter your username.")

这将解决您立即被拒绝的问题。

你在这条线上也有同样的问题:

question = ("Do you like it?")

也应该是:

question = input("Do you like it?")

事情是这样的:

您是编码新手。我们可以在这里看到。但是,总有改进的余地,您可以从错误中学习。有些人有时会编写奇怪的代码 ;)

我已经创建了一个工作模型供您查看哪里出错了。

print ("Welcome.")
username = input("Please enter your username.")
if username in ("mom", "savanna", "joseph"):
    password = input("Please enter your password.")
    if password in ("1975","2000","jesus"):
        print ("Granted.")
        question = input("Do you like it?")
        if question == ("yes"):
            print ("I thought you would.")
        elif question == ("no"):
            print ("I guess I could do better")
        else:
            print ("error")

else:
    print ("Denied!!!")
    break

您输入的 question = ("Do you like it?") 没有 input。这很重要,因为它实际上允许用户键入内容。

你写了if username == ("mom,savanna,joseph")
这意味着如果用户名是 mom,savanna,joseph 那么你就可以进入。显然你只想其中一个进入。布尔运算符 or 在这种情况下可以提供很多帮助。

请注意我是如何使用 elif 而不是 if 的。 Python只能有一个if和一个else。但是你想要多少 elifs 就多少。表示else-if.

编辑:

阅读 Joel 的评论后,我注意到您可能希望妈妈的密码为 1975,Savannah 的密码为 2000,Joseph 的密码为 jesus。您认为如何使用我在此处给出的代码来做到这一点?

我假设你想要 3 个不同的用户名,妈妈的密码是 1975 等等。

password = {"mom":"1975", "savanna":"2000", "joseph":"jesus"}

print ("Welcome.")
username = input("Please enter your username.")
if username in password:  #if x in dict returns True if dict has the key x
    print ("Granted.")
    mypassword = input ("Please enter your password.")
    if mypassword == password[username]:
        print ("Granted.")
        answer = input("Do you like it?")
        if answer == ("yes"):
            print ("I thought you would.")
        elif answer == ("no"):
            print ("I guess I could do better")
        else:
            print ("error")
    else:
        print ("Denied!!!")

else:

    print ("Denied!!!")

input("press enter to quit")

您可能想围绕它设置一个循环,这样它就不必在出现错误条目时重新启动。