2017-02-10 8 views
0

Мне просто интересно, есть ли способ ограничить количество раз, когда пользователь может вводить что-то в цикл while. Это просто догадка номер 1-100. У меня есть найденная переменная = False.Есть ли способ ограничить количество циклов while или входных циклов?

while not found: 
    user_guess = int(input("Your guess: ")) 
    if user_guess == random_number: 
     print("you got it!") 
     found = True 
    elif user_guess > random_number: 
     print("Guess lower") 
    else: 
     print("guess higher") 

Я хотел бы видеть, если я мог бы сделать этот код, кажется, больше похоже на игру, ограничивая количество пользователь может угадать для ввода. У меня были некоторые идеи, которые я просто не могу обвести вокруг себя. я установил значение переменной для ввода, чтобы установить количество раз, которое он может запустить? Я новичок в программировании, поэтому я немного борюсь.

+0

Вам нужен счетчик; что вы добавляете 1 в цикл; или используйте цикл 'for' с' range', а не 'while' loop –

+0

Вы можете сохранить счетчик' guesses', например. 'guesses = 0'. Затем, в конце вашего while_loop, 'guesses + = 1'. Ваше условие может быть 'while guesses <3', например, чтобы ограничить его до 3-х догадок. И затем вместо отслеживания 'найденных', просто' break' out, когда 'user_guess == random_number'. Или используйте for-loop и break-out соответственно. –

ответ

0
count = 0 
max_guesses_allowed = pick your max here 

while not found or count < max_guesses_allowed: 
    user_guess = int(input("Your guess: ")) 
    if user_guess == random_number: 
     print("you got it!") 
     found = True 
    elif user_guess > random_number: 
     count += 1 
     print("Guess lower") 

    else: 
     count += 1 
     print("guess higher") 
0

Стандартный способ - подсчитать количество циклов, а затем выйти, если они превысят максимум.

max_allowed = 10 
attempt = 0 

while not found: 
    attempt += 1 
    user_guess = int(input("Your guess: ")) 
    if user_guess == random_number: 
     print("you got it!") 
     found = True 
    elif attempt == max_allowed: 
     print("You've reached the maximum number of guesses.") 
     break 
    elif user_guess > random_number: 
     print("Guess lower") 
    else: 
     print("guess higher") 
+0

Если вы правильно догадались, что в последний раз он скажет вам, что вы его получили, и вы достигли максимального количества догадок ... неясно, является ли это предполагаемым поведением. – TemporalWolf

+0

Если им разрешено 10 попыток, и они догадываются об этом на 10-й попытке, они скажут им, что они его нашли. Это поведение, которого я ожидал бы. – Batman

+0

Вы правы - я неправильно понял. – TemporalWolf

Смежные вопросы