= Логические выражения и цикл = Разбор задачи «[[../Homework_TriangleCheck|Неравенство треугольника]]» * С вложенным `if` * С гипотезой о результате Кстати, о максимуме из трёх: {{{#!python M = M if (M := a if a > b else b) > c else c }}} == Логические выражения == * Вложенные условия → операция `and` * Любое условие из двух → `or` * Отрицание условия → `not` |||||| '''or''' || |||||| '''and''' || || '''A''' || '''B''' || '''A''' or '''B''' || || '''A''' || '''B''' || '''A''' and '''B''' || || False || False || False || || False || False || False || || False || True || True || || False || True || False || || True || False || True || || True || False || False || || True || True || True || || True || True || True || * True и False — отдельный тип данных bool * Ленивые вычисления * Перепишем неравенство треугольника * «проверка на __не__-треугольник» (просто not от исходного выражения!) * правило раскрытия скобок и `ǸOT` (или наоборот ☺) далее — булева алгебра (кажется, была в школе)… [[LecturesCMC/PythonIntro2021/02_Conditionals#A.2BBBAEOwQzBDUEMQRABDA_.2BBDsEPgQzBDgEOgQ4-|вся правда о логических выражениях в Python]] == Цикл == Для записи алгоритма требуются (грубое предположение): 1. переменные 1. условные операторы 1. циклы Простой `while`: {{{#!python while условие: оператор1 оператор2 … }}} * Пример: цикл со счётчиком<> * Каноническая схема цикла: 0.#0 Инициализация 1. Проверка условия 1. Тело 1. Изменение условия * Пhимер: таблица умножения на 6 * Цикл по вводу * Поиск первого: флаговая переменная, `break` и `else` * Пропуск фрагмента кода: `continue` == Вложенные циклы == Принцип: внутри цикла может быть что угодно. Если там вложенный цикл. он начнётся, отработает и закончится. * Пример: Цикл по вводу + цикл внутри * Пример: Таблица умножения от 2 до 6 * Эффект от нарушения канонической схемы == Д/З == 1.#0 Прощёлкать: * [[https://greenteapress.com/thinkpython2/html/thinkpython2008.html|Главу в учебнике «Think Python»]] * [[https://pythontutor.ru/lessons/while/|Занятие в Pythontutor]] * Работу функции `print()`. Чем отличается 1. {{{#!python print(a, "#", b) print(a, "ЫЫЫ", b) }}} 1. от {{{#!python print(a, "#", b, sep="!") print(a, "ЫЫЫ", c, sep="---") }}} 1. и от {{{#!python print(a, "#", b, end="...") print(a, "ЫЫЫ", b) }}} 1. <> 1. <> 1. <> 1. <>