• Почему не работает IF-ELSE?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    lock = 5
    tries = 5
    key = -1
    
    while tries:
        tries -=1
        key = int(input('Введите число: '))  
        if key == lock:
            print(f"поздравляю, вы выиграли, потратив {5-tries} попыток!")
            break  
        print(f'осталось {tries} попыток')
    else:
        print('проигрыш!')

    Не подглядывая к Vindicar накарябал почти то же самое :)
    Ответ написан
    4 комментария
  • Почему не работает IF-ELSE?

    Vindicar
    @Vindicar
    RTFM!
    1. Как проверял? Просто пытался угадать? Рандом - штука такая, могло просто не везти.
    2. Если пользователь с первого раза введёт правильный key, условие цикла сразу будет False, и цикл не выполнится - а значит, не выполнятся и ifы.

    Я бы посоветовал сделать так:
    max_tries = 5  # число попыток
    key = -1  # заведомо некорректное значение
    for i in range(1, max_tries+1):
        key = int(input(f'Попытка №{i}: '))
        if key == lock:
            print(f'Угадал c {i}-й попытки!')
            break
    else:  # этот else относится к for! 
        # он выполнится, если for НЕ БЫЛ прерван по break
        print('Попытки кончились. =(')
    Ответ написан
    1 комментарий