Почему программа не выдаёт ответ?

Рейтинг: -1Ответов: 1Опубликовано: 23.01.2023
for x in '01':
    for y in '01':
        for z in '01':
            for w in '01':
                if not(((x <= y) == (z <= w)) or (x and w)):
                    print(x, y, z, w)

Ответы

▲ 0

У вас то, что внутри not никогда не бывает равно False. Проблема во втором выражении (x and w). Для символов это выражение будет давать на выходе тоже символы. Даже если в первой части ((x <= y) == (z <= w)) и получится False, то or в этом случае даст то, что получилось в правой части, т.е. символ 0 или 1. А после not любой из этих символов даст True, потому что символ - это не пустая строка.