Логические выражения, условные операторы и цикл

Алгебра логики

Сравнения

Условные действия

Оператор match

См. pep-0634, pep-0635 и pep-0636

Это довольно сложный оператор на сопоставление структуры объекта, здесь упомянем только функцию управления потоком вычислений и прямого связывания.

   1 match int(input()):
   2     case 1:
   3         print("It's 1")
   4     case 10:
   5         print("It's 10")
   6     case var:
   7         print(var, "is unknown")

Обратите внимание на то, что если в примере ввод равен "1", мы сам введённый объект теряем — он ничем не связан. Как быстрее всего задать имя введённого объекта?

Цикл while

Цикл while и операция связывания

Пример: цикл по вводу (ещё раз привет, Си!)

   1 while str := input():
   2     print(str)

Или даже while (str := input()) != "END": …

Коротко про ввод и вывод в Д/З

Д/З

Более подробные формулировки задач и интерфейс для их сдачи доступны по ссылкам вида «'Имя_задачи'»

Пользоваться составными типами данных Python (кроме преобразования ввода и множественного связывания) в этих задачах нельзя.

  1. Прочитать и прощёлкать учебник (до функций)

  2. EJudge: MaxSubsum 'Полоса удач'

    Ввести в столбик последовательность целых (положительных и отрицательных) чисел, не равных нулю; в конце этой последовательности стоит 0. Вывести наибольшую сумму последовательно идущих элементов этой последовательности (не менее одного).

    Input:

    2
    3
    -7
    -1
    3
    4
    5
    -2
    -4
    7
    8
    -6
    -1
    0
    Output:

    21
  3. EJudge: SecondMax 'Почти победа'

    Ввести по одному в строке целые числа, не равные нулю (не менее одного, конец ввода — 0), вывести второй максимум последовательности (число, строго меньшее максимума последовательности, и не меньшее остальных чисел в ней), и NO, если такового нет.

    Input:

    1
    2
    3
    4
    3
    2
    1
    0
    Output:

    3
  4. EJudge: HalfMore 'Больше половины'

    Имеется большая последовательность объектов (неважно каких), допускающих операцию сравнения. Известно, что некоторых одинаковых объектов в последовательности больше половины. Требуется, не храня последовательности, выяснить, чему они равны (т. е. вывести пример такого объекта). Ввод построчный, последняя строка — пустая. Вывод делать с помощью обычного print().

    Input:

    int
    int
    float
    int
    str
    str
    int
    str
    int
    int
    float
    int
    int
    float
    int
    float
    Output:

    <class 'int'>
  5. EJudge: CubeSum 'Сумма кубов'

    Ввести натуральное число N и вывести, сколько ∃ различных пар натуральных чисел A и B: A³+B³=N (с точностью до перестановки). <!> Вещественные операции (например, кубический корень) рекомендуется использовать как можно реже.

    Input:

    87539319
    Output:

    3

LecturesCMC/PythonIntro2023/02_Conditionals (последним исправлял пользователь FrBrGeorge 2023-09-17 21:59:39)