0

Не понимаю в чем ошибка, но при условии, что 3 стороны равны нулю выдаёт, что фигура и точка и линия

import sys print("Введите параметры фигуры:") a = int(input("Введите длину 1 сторону в см: ")) b = int(input("Введите длину 2 сторону в см: ")) c = int(input("Введите длину 3 сторону в см: ")) d = int(input("Введите длину 4 сторону в см: ")) if a == b == c == d == 0: print("это не фигура") quit() if a == b == c == d != 0: print("Ваша фигура квадрат!") else: print("Ваша фигура не квадрат") if a == c != 0 and b == d != 0: print("Ваша фигура прямоугольник") else: print("Ваша фигура не прямоугольник") if not a or not b or not c or not d == 0: print("Ваша фигура не треугольник") else: print("Ваша фигура треугольник") if a and b and c and d != 0: print("Ваша фигура четырехугольник") else: print("Ваша фигура не четырехугольник") if 0 == a + b + c or 0 == a + c + d or 0 == a + b + d or b + c + d == 0 and a + b + c + d == 1: print("Ваша фигура точка") quit() if 0 == a + b + c or 0 == a + c + d or 0 == a + b + d or b + c + d == 0 and a + b + c + d > 1: print("Ваша фигура линия") finally: print("Спасибо")

22nd Oct 2023, 4:03 AM
Clown
3 Réponses
+ 2
To make your code easier to try, save it in the code playground and insert a link in the forum. Please indicate which inputs you are giving that causes the error.
22nd Oct 2023, 7:37 AM
Tibor Santa
Tibor Santa - avatar
+ 2
Потому что операторы or и and выполняются последовательно. Поэтому конструкция типа: a or b or c and d эквивалентна конструкции: a or b or (c and d). Используйте скобки чтобы определить порядок использования операторов
22nd Oct 2023, 9:03 AM
Old Slice
+ 2
Как только первая часть условия "if 0 == а+b+c" будет верной вся остальная часть проверяться не будет, так как за ней следует логический оператор "or".
22nd Oct 2023, 5:46 PM
Solo
Solo - avatar