Я бы согласился с @mauve, что цикл while
не совсем то, что вы ищете, но вы все равно можете сделать это с помощью счетчика:
max_tries = 5
while max_tries > 0: # We will decrement max_tries on each loop
password = input('What is your password?')
if password == "abc123":
break
print("Please Try Again")
max_tries -= 1 # Decrement max_tries
if max_tries==0: # We tried too many times
raise ValueError("Too many attempts!")
Однако, может быть немного понятнее использовать цикл for
for i in range(max_tries):
password = input('What is your password?')
if password == "abc123":
break
print("Please Try Again")
if i == max_tries:
raise ValueError("Too many attempts")
Вы можете использовать else
в конце цикла for следующим образом:
for i in range(max_tries):
password = input('What is your password?')
if password == "abc123":
break
print("Please Try Again")
else:
raise ValueError("Too many attempts")
Где else
поймает случай, когда break
не был вызван до конца цикла