Как сделать подсчет в python, чтобы программа заканчивалась после определенного количества отсчетов? - PullRequest
2 голосов
/ 01 марта 2010

Я новичок, и мне нужно знать, как изменить программу угадывания пароля, чтобы отслеживать, сколько раз пользователь вводил пароль неверно. Если он был введен более 3 раз, тогда должно появиться «Это кажется сложным», и программа должна быть завершена. Программа для подбора пароля

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

Как мне изменить эту программу, чтобы получить такую, как я упоминал ранее? Кто-нибудь может направить меня? Спасибо.

Ответы [ 5 ]

4 голосов
/ 01 марта 2010
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 голос
/ 01 марта 2010
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 голосов
/ 28 ноября 2013
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)

спасибо, я смог сделать это

0 голосов
/ 04 мая 2013

Немного проще, чем некоторые из предыдущих возможностей, я, вероятно, предпочел бы этот метод, потому что я ненавижу использовать модуль 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 голосов
/ 01 марта 2010

Инициализируйте переменную count до нуля и увеличивайте ее в цикле. Затем вы можете использовать счетчик в вашем цикле while и затем после цикла, чтобы определить, сколько попыток потребовалось, и напечатать сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...