Сравнения и условный оператор

(Есть подходящее по теме занятие в pythontutor)

Повтор

EJudge: все зарегистрировались?

Сравнения

Условие как проверка свойств данных

Пример условия: сравнения

Условные операторы

Пример про a>b vs a⩽b

Ещё примеры.

Вложенные условные операторы

Внутри блока с отступом могут встречаться условные операторы:

   1 #!/usr/bin/env python3
   2 a = int(input())
   3 b = int(input())
   4 if b != 0:
   5     if a / b > 10:
   6         print(a, "раз в десять больше", b)
   7     else:
   8         print(a, "не сильно больше или даже меньше", b)
   9 else:
  10     if a > b:
  11         print(a, "бесконечно больше", b)
  12         print("потому что любое положительное число бесконечно больше нуля")
  13     elif a < b:
  14         print(a, "бесконечно меньше", b)
  15         print("потому что любое отрицательное число бесконечно меньше нуля")
  16     else:
  17         print(a, "и", b, "— нули")

Ещё про условия

Пример для if

Условное выражение может встречаться прямо внутри формул:

выражение-для-True if условие else выражение-для False

Пример:

   1 res = a / b if b != 0 else -1

Д/З

Все задачи можно решить без применения алгебры логики (т. е. без or, and и not), одними только сравнениями. Но если вы умеете в неё, то пожалуйста!

А вот составными типами данных Python, равно как и функциями min() и max(), пользоваться нельзя (хотя они и есть), потому что это упражнения на условные операторы.

Посмотрите полные варианты условий задач (по ссылкам с названиями задач). Там могут быть подсказки и советы, а в особо трудных случаях — спойлеры с алгоритмом.

  1. Прощёлкать
  2. EJudge: TriangleCheck 'Неравенство треугольника'

    Ввести в столбик три положительных вещественных числа (проверять правильность не надо), и вывести YES, если из отрезков указанной длины можно сложить треугольник, и NO в противном случае

    Input:

    3
    4
    5
    Output:

    YES
  3. EJudge: SquareEquation 'Квадратное уравнение'

    Ввести в столбик три вещественных числа: a, b и c, вывести все вещественные решения уравнения $$ax^2+bx+c=0$$. При $$a\ne 0$$ это уравнение превращается в квадратное. Решения выводить через пробел в порядке возрастания, если решений нет, вывести 0, если их бесконечно много — -1.

    Input:

    1
    -3
    2
    Output:

    1.0 2.0
  4. EJudge: ConfFormula 'Минимумы и максимумы'

    Ввести в столбик три вещественных числа x, y и z. Вычислить формулу:

    • $$ (max^2(x,y,z) - 2^xmin(x,y,z)) / (sin2x + max(x,y,z)//min(x,y,z)) $$

    Проверить возможное деление на 0 и вместо ответа вывести 0, если оно предвидится. В противном случае вывести результат вычислений. Последовательностями python и функциями min() и max() пользоваться нельзя!

    Input:

    2
    3
    4
    Output:

    6.435019351154122
    • <!> Необязательное упражнение:

      • Функцией min() нельзя пользоваться, но с помощью тернарной операции и операции «:=» выбор минимального из трёх чисел записать несложно. Попробуйте!

  5. EJudge: CorrectDate 'Правильная дата'

    Ввести в столбик три целых заведомо положительных числа — номер года, номер месяца и номер дня в месяце. Проверить, есть ли такой день в месяце, и если да, выдать "YES", а если нет — "NO". Считать високосными все кратные 4 номера годов.

    Input:

    2019
    2
    29
    Output:

    NO

Python/GeoPython2021/03_Conditionals (last edited 2021-10-31 18:48:04 by FrBrGeorge)