Цикл While не работает с логическими операциями

Кто нибудь может объяснить неучу, почему при таком написании кода не работает условие в цикле While при втором уровне сложности (количество попыток уже превышает 5, а выход из цикла всё равно не происходит)? Знаю, что код можно написать по-другому, но интересно в чём здесь ошибка

import random

number = random.randint(1,100)
user_number = None

i = 0

level = int(input('Какой будет уровень сложности? Введите 1 или 2: '))

if level == 1:

    while user_number != number:
        user_number = int(input('Попробуйте угадать число от 1 до 100 '))
        if user_number > number:
            print('Ваше число больше загаданного!')
        elif user_number < number:
            print('Ваше число меньше загаданного!')
        else:
            print('Победа!')

elif level == 2:

    while (user_number != number) or (i != 5):
        i += 1
        print(f'Попытка № {i}')
        user_number = int(input('Попробуйте угадать число от 1 до 100 '))
        if user_number > number:
            print('Ваше число больше загаданного!')
        elif user_number < number:
            print('Ваше число меньше загаданного!')
        else:
            print('Победа!')
    if i == 5:
        print('Вы истратили количество попыток!')

Ответы (1 шт):

Автор решения: MBo

Нарушена логика.

Сейчас - продолжать, пока или первое или второе, т.е. для остановки нужно нарушение двух условий одновременно.

Чтобы останавливаться по любому условию, требуется and

while (user_number != number) and (i != 5):
→ Ссылка