Срабатывает одно условие Python и не выводит else

Рейтинг: -1Ответов: 2Опубликовано: 02.07.2023

при входных данных 10, 20, -100, -50 должно вывести пустое множество, но по каким то причинам в консоли получаю код 0, не могу понять в чем дело

a1 = int(input())
b1 = int(input())
a2 = int(input())
b2 = int(input())

if (a1 < (b2 and a2)):
    if (b1 > (a2 and b2)):
        print(a2, b2)
    if (a2 < b1) and (b1 == b2):
        print(a2,b2)
    if (a1==a2 and b1==b2):
        print(a2, b2)

elif (a2 == a1):
    if (b2 > (b1 and a1)):
        print(a1, b1)
elif (b1 == b2):
    if (a2 < (a1 and b1)):
        print(a1, b1)
elif (a2 < a1 > b1 and b2):
    if (a2 and a1 < b1 < b2):
        print(a1, b1)

elif ((a1 and a2) < b1 < b2):
    if a1 < a2 > (b1 and b2):
        print(a2, b1)
elif (a2 and a1) < b2 < b1:
    if a2 < a1 < (b2 and b1):
        print(a1, b2)
elif (a2 > a1) and (b2 > b1):
    if (b1==a2):
        print(a2)
elif (a1 > a2 ) and (b1 > b2):
    if (a1==b2):
        print(a1)
else:
    print('пустое множество')

Ответы

▲ 4Принят

Очень странные условия...

Вот это к, примеру.

if (a1 < (b2 and a2))

Есть подозрение, что закладывалась логика если a1 меньше b2 и меньше a2

Но на самом деле оно работает не так.

Здесь получается что сначала выполняется операция в скобках. Но по сути a and b в результате возвращает a.

Если нужно условие если a1 меньше b2 и меньше a2, то надо писать

if (a1 < b2 and a1 < a2)
▲ 2

у вас срабатывает последнее условие

elif (a1 > a2) and (b1 > b2):

Дальше идёт проверка

if a1 == b2:

У вас a1 = 10, b2 = -50. Поэтому программа выдаёт ничего