如何在python中进行计数,以便程序在特定数量的计数后结束?

时间:2010-03-01 17:43:00

标签: python

我是新手,我需要知道如何修改密码猜测程序以跟踪用户输入密码错误的次数。如果输入的次数超过3次,则应打印“这似乎很复杂”,程序应该结束。 密码猜测程序是

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

如前所述,我应如何修改此程序以获取一个程序?谁能指导我?谢谢。

5 个答案:

答案 0 :(得分: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'

答案 1 :(得分: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)

答案 2 :(得分:0)

将计数变量初始化为零并在循环中递增它。然后,您可以在while循环条件中使用计数,然后在循环之后使用计数来确定所需的尝试次数和打印消息。

答案 3 :(得分:0)

比以前的一些可能性稍微简单一点,我可能更喜欢这种方法,因为我讨厌像Tendayi Mawushe所建议的那样使用sys模块,就像之前的海报所说的那样。另外需要注意的是,您之前的程序会打印出是否获得正确密码的欢迎信息。我用一个简单的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"

答案 4 :(得分: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)

谢谢我能够做到这一点