欢迎。否认!按Enter键退出

时间:2015-01-16 05:03:42

标签: python passwords username

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

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")

4 个答案:

答案 0 :(得分:2)

您的主要问题是:

username = ("Please enter your username.")

我认为你的意思是在那里进行input函数调用。

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

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

此行上也有同样的问题:

question = ("Do you like it?")

也应该是:

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

答案 1 :(得分:1)

这就是事情:

您不熟悉代码。我们在这里可以看到。但是,总有改进的余地,你可以从错误中吸取教训。有些人有时会制作奇怪的代码;)

我为你创建了一个工作模型,看看你哪里出错了。

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。但是你想要的人数和你一样多。这意味着else-if。

修改

在阅读了乔尔的评论之后,我注意到你可能希望妈妈的密码是1975年,萨凡纳是2000年,而约瑟夫是耶稣。您如何使用我在此处给出的代码来做到这一点?

答案 2 :(得分:1)

我假设您想拥有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")

您可能想要围绕它进行循环,以便在出现错误条目时不必重新启动。

答案 3 :(得分:0)

您要求if username == ("mom, savanna, joseph")而不是if username in ("mom, savanna, joseph")

如果你进入"妈妈"对于用户名,当它问你时,就像比较这个

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()用户名