2010-03-01 56 views
2

我是新手,我需要知道如何修改密码猜测程序,以跟踪用户输入密码错误的次数。如果输入超过3次,则应打印出“这似乎很复杂”,程序应该结束。 密码猜测程序是如何在Python中进行计数,以便程序在特定数量的计数后结束?

password="abcd" 
while password != "password" 
     password = raw_input("Password:") 
print "Welcome in" 

我应该如何修改这个方案得到一个像我前面提到的?谁能指导我?谢谢。

回答

0

将计数变量初始化为零并在循环中增加它。然后,您可以在while循环条件中使用计数,然后在循环后确定执行了多少次尝试并打印消息。

+0

AR感谢您的回复。修改的程序这样 密码= “ABCD” CURRENT_COUNT = 0 而密码= “密码”: 密码=的raw_input( “猜测密码:”) CURRENT_COUNT = CURRENT_COUNT + 1 如果CURRENT_COUNT> 2: 打印“这一定很复杂。” 打印“欢迎进来” 一旦我运行该程序后,3错误尝试它仍然显示消息“猜密码?一旦我给出正确的密码,它会给出消息“那一定很复杂”,然后只显示“欢迎进来”。有什么方法可以终止“猜猜密码?”经过三次错误尝试? – Satish 2010-03-01 18:07:29

+0

@Satish。这里有一个提示:不要在评论中发布代码。您可能想添加到您的问题。 – 2010-03-01 18:21:51

1
import sys 
counter = 0; 
while counter < 3: 
    counter += 1 
    password = raw_input("Password:") 
    if password == "password": 
     print "Welcome in" 
     break 
else: 
    print "This seems to be complicated" 
    sys.exit(0) 
+0

谢谢Tendayi。但是因为我是新手,所以在我所提到的这本书中,我并没有进入“为了”命令的阶段。那么通过使用“if,while”命令来编译它是否还有其他方法? – Satish 2010-03-02 03:12:49

+0

更新了使用while循环的答案。 – 2010-03-02 21:01:13

+0

谢谢Tendayi。其他部分似乎没有在上面给出的代码中工作。只有当我给出正确的密码时,程序才会退出。 – Satish 2010-03-03 03:24:20

4
for trial in range(3): 
    if raw_input('Password:') == 'password': 
     break 
else: 
    # didn't find password after 3 attempts 
    sys.exit(10) 
print 'Welcome in' 
+0

我想你可能需要修复你的缩进 – inspectorG4dget 2010-03-01 18:55:44

+0

谢谢保罗。这真的很有用。 – Satish 2010-03-02 03:08:46

+3

@ inspectorG4dget nope,缩进是正确的 - 其他的附加到for。 – 2010-03-02 18:33:18

0

比以前的一些可能性稍微简单一些,我想是因为我讨厌使用sys模块Tendayi Mawushe建议,因为以前的海报建议可能喜欢这种方法。另外需要注意的是,您之前的程序会打印是否获得正确的密码。我用一个简单的if语句解决了这个问题。

password="abcd" 
trials = 0 
while password != "password": 
     if trials==3: 
       break; 
     else: 
       password = raw_input("Password:") 
       trials+=1 
if password == "password": 
    print "Welcome in" 
0
print("To start program please login") 
Validusername = "Trollman" 
ValidPassword ="1337" 
UserInput=input("Enter Username") 
PassInput=input("Enter Password") 
trials = 0 
while (PassInput != ValidPassword or UserInput != Validusername): 
     if trials==3: 
       break; 
     else: 
       UserInput=input("Login Failed: Re-Enter Username") 
       PassInput=input("Re-Enter Password") 

       trials+=1 
if (PassInput == ValidPassword and Validusername == UserInput): 
    print("welcome " + UserInput) 

谢谢,我是能够使这