Python поддерживает сравнение с несколькими условиями с помощью логических операторов and, or, и not.
and возвращает True, только если все условия истинны.
or возвращает True, если хотя бы одно условие истинно.
not инвертирует логическое значение условия.
Пример: if a > 0 and b < 10: ...
Операции сравнения могут быть объединены в цепочки: a < b < c эквивалентно a < b and b < c.
В Python, сравнение с несколькими условиями обычно выполняется с помощью логических операторов and, or и not, а также операторов сравнения (==, !=, <, >, <=, >=). Python также поддерживает chained comparisons.
Логические операторы:
and: Возвращает True, если все условия истинны. Если хотя бы одно условие ложно, возвращает False.or: Возвращает True, если хотя бы одно условие истинно. Возвращает False, только если все условия ложны.not: Инвертирует логическое значение условия.  not True вернет False, и наоборот.Операторы сравнения:
==: Равно!=: Не равно<: Меньше>: Больше<=: Меньше или равно>=: Больше или равноПримеры:
  x = 5
  y = 10
  z = 15
  # Использование 'and':  Все условия должны быть истинными
  if x < y and y < z:
      print("x < y < z") # Будет выполнено, так как x < y и y < z
  if x < y and y > z:
      print("Это не будет выполнено") # Не будет выполнено, так как y не меньше z
  # Использование 'or':  Хотя бы одно условие должно быть истинным
  if x < y or y > z:
      print("Одно из условий истинно") # Будет выполнено, так как x < y
  # Использование 'not':
  if not x > y:
      print("x не больше y") # Будет выполнено, так как x не больше y
  Chained Comparisons (цепочные сравнения):
Python позволяет связывать операторы сравнения для более читаемого кода. Например:
  a = 1
  b = 2
  c = 3
  if a < b < c:
      print("a < b < c")  # Равносильно (a < b) and (b < c)
  if 0 <= a <= 2:
      print("a между 0 и 2 включительно")
  # Важно отметить, что сравнения выполняются слева направо и
  # при обнаружении первого ложного сравнения, цепочка прекращается.
  Короткое замыкание (Short-circuiting):
Python использует "короткое замыкание" при вычислении логических выражений. Это означает, что Python прекращает вычисление выражения, как только результат становится известен.
and: Если первое условие False, то второе условие не вычисляется, так как результат в любом случае будет False.or: Если первое условие True, то второе условие не вычисляется, так как результат в любом случае будет True.
  def condition1():
      print("Condition 1 evaluated")
      return True
  def condition2():
      print("Condition 2 evaluated")
      return False
  if condition2() and condition1():
      print("Both are True")  # Condition 1 не будет вычислено
  else:
      print("At least one is False")
  if condition1() or condition2():
      print("At least one is True") # Condition 2 не будет вычислено
  В заключение, понимание логических операторов, операторов сравнения и короткого замыкания необходимо для написания эффективного и читаемого Python кода, особенно когда речь идет о сложных условных конструкциях.