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

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)

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

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

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

→ Ссылка