Презентация по дисциплине "Информатика и основы программирования". Тема: Основы программирования на Python с фокусом на структурированное программирования. Часть 2. (1 курс)
Cкачать презентацию: Презентация по дисциплине "Информатика и основы программирования". Тема: Основы программирования на Python с фокусом на структурированное программирования. Часть 2. (1 курс)
Презентация по слайдам:
Слайд #1
Основы
программирования на
Python с фокусом на
структурное
программирование
Python - один из самых популярных и простых языков программирования. Он широко используется для веб-разработки, анализа данных и искусственного интеллекта.
Ильичёвс Михаилс

Слайд #2
Python
Python — это высокоуровневый, интерпретируемый, объектно-ориентированный язык программирования с динамической типизацией. Этот язык был создан Гвидо ван Россумом и впервые выпущен в 1991 году. Python поддерживает множество парадигм программирования, включая структурное, объектно-ориентированное и функциональное программирование. Одной из ключевых особенностей Python является его читаемый и краткий синтаксис, что делает его особенно подходящим для начинающих в программировании.
Python был разработан Гвидо ван Россумом в конце 1980-х годов как проект-хобби в период Рождественских каникул. Гвидо стремился создать язык, который был бы удобен в использовании и доступен для понимания, вдохновляясь языками ABC, Modula-3 и C. Он хотел, чтобы Python сочетал в себе мощные возможности и простоту, подходя как для простых, так и для сложных задач программирования.

Слайд #3
Развитие
Ранние годы
Первая версия Python 0.9.0 была выпущена в феврале 1991 года. Она уже включала исключения, функции и модули, а также систему типов, позволяющую создавать объекты с различными типами данных.
Python 2
В октябре 2000 года был выпущен Python 2.0, который привнес множество улучшений и новых функций, таких как полная поддержка юникода и сборка мусора. Версия 2.7, выпущенная в 2010 году, стала последней в линейке Python 2.
Python 3
Python 3.0, выпущенный в декабре 2008 года, был значительным обновлением, направленным на устранение недостатков дизайна языка. Эта версия не была обратно совместима с Python 2, что вызвало значительные споры в сообществе разработчиков. Однако со временем большинство популярных библиотек и фреймворков были обновлены до совместимости с Python 3.

Слайд #4
Состояние на сегодняшний
день
Популярность и использование
На сегодняшний день Python является одним из самых популярных языков программирования в мире, широко используется в веб-разработке, научных исследованиях, искусственном интеллекте, машинном обучении, обработке данных и автоматизации. Благодаря своей универсальности, Python находит применение в самых разных областях — от веб-разработки до кибербезопасности.
Развитие языка
Развитие Python продолжается, при этом акцент сделан на улучшение производительности, удобства использования и расширение возможностей стандартной библиотеки. Python 3.9, 3.10 и последующие версии вносят множество улучшений и новых возможностей, таких как объединение словарей, улучшенный синтаксис аннотаций типов, новые возможности для работы со строками и более эффективное использование памяти. и финансовыми аспектами.

Слайд #5
Состояние на сегодняшний
день
Сообщество и развитие
Сообщество Python является одним из самых активных и дружественных в мире программирования. Многочисленные конференции, митапы и форумы, такие как PyCon, EuroPython и другие, поддерживают обмен знаниями и лучшими практиками. Python Software Foundation (PSF) поддерживает развитие языка, управляет правовыми и финансовыми аспектами. В заключение, Python продолжает оставаться в авангарде программирования благодаря своей гибкости, мощным библиотекам и активному сообществу. Его легкость в изучении и широкий спектр применения делают его отличным выбором для программистов всех уровней.

Слайд #6
Элементы языка Python
Синтаксис
Читаемость. Python известен своим чистым и читаемым синтаксисом, который напоминает английский язык. Это делает код легко понимаемым.
Отступы. В Python отступы используются для определения блоков кода вместо фигурных скобок, как во многих других языках программирования. Правильное использование отступов критически важно для структурирования кода.
Переменные и типы данных
Динамическая типизация. Python является языком с динамической типизацией, что означает, что тип переменной определяется в момент присвоения ей значения, и тип может изменяться.
Основные типы данных. Python поддерживает различные типы данных.
Python обладает богатым набором элементов языка, которые делают его мощным, гибким и доступным для программистов различного уровня.

Слайд #7
Элементы языка Python
Операторы
Арифметические операторы. +, -, *, /, //, %, **.
Операторы сравнения. ==, !=, <, >, <=, >=.
Логические операторы. and, or, not.
Операторы присваивания. =, +=, -=, *=, /=, и т.д.
Управляющие конструкции
Условные операторы. if, elif, else для выполнения кода на основе условий.
Циклы. for для итерации по элементам последовательности и while для выполнения блока кода до тех пор, пока условие истинно.

Слайд #8
Элементы языка Python
Функции
Определение функций. Используйте ключевое слово def для определения функций. Python поддерживает функции с позиционными и ключевыми аргументами, а также аргументы по умолчанию.
Анонимные функции. Используйте lambda для создания анонимных функций.
Классы и объектно-ориентированное программирование
Классы. Определите классы с помощью ключевого слова class. Классы поддерживают наследование, инкапсуляцию и полиморфизм.
Методы. Функции, определенные внутри класса, называются методами. Они используются для определения поведения объектов.

Слайд #9
Элементы языка Python
Модули и пакеты
Модули. Файлы Python, содержащие определения функций и переменных, называются модулями. Модули могут быть импортированы в другие модули.
Пакеты. Пакеты — это способ структурирования модулей Python с помощью каталогов.
Исключения
Обработка исключений. Python обеспечивает управление исключениями с помощью блоков try, except, else и finally.
Генерация исключений. Используйте raise для генерации исключений.

Слайд #10
Элементы языка Python
Ввод и вывод
Функция print(). Используется для вывода данных на стандартное устройство вывода (обычно экран).
Функция input(). Используется для получения ввода от пользователя.
Работа с файлами
Операции с файлами. Python поддерживает чтение и запись файлов с помощью функций open(), read(), write() и close().

Слайд #11
Элементы языка Python
Декораторы
Декораторы. Предоставляют способ модификации функций или методов с помощью других функций, что позволяет расширять их функциональность без изменения их кода.
Генераторы и итераторы
Генераторы. Упрощают создание итераторов с использованием функций и оператора yield.
Итераторы. Объекты, которые позволяют проходить по элементам коллекции.

Слайд #12
Типы данных
Типы данных в информатике и программировании - это атрибут данных, который сообщает компьютеру и программисту о характеристиках данных и о том, какие операции могут быть выполнены с данными.
Тип данных определяет следующее:
Диапазон значений, которые могут быть представлены данными.
Операции, которые могут быть выполнены над данными.
Представление данных в памяти.

Слайд #13
Типы данных

Слайд #14
Оператор
В программировании оператор - это символ или слово, которое указывает компьютеру выполнить определённую математическую, логическую или операцию сравнения над данными. Операторы позволяют манипулировать значениями переменных и управлять ходом выполнения программы. В зависимости от типа операции, которую они выполняют, операторы обычно классифицируются на несколько основных типов:
Арифметические операторы. Используются для выполнения математических операций.
Операторы сравнения. Позволяют сравнивать значения.
Логические операторы. Используются для комбинирования логических выражений.
Операторы присваивания. Служат для присвоения значений переменным. Побитовые операторы: работают на уровне отдельных битов значений.

Слайд #15
Операторы

Слайд #16
Операторы

Слайд #17
Операторы

Слайд #18
Операторы

Слайд #19
Операции
Операция в контексте программирования и информатики - это действие, выполняемое над одним или несколькими значениями (операндами), с использованием операторов, с целью получения нового значения или эффекта. Операции можно классифицировать на различные типы в зависимости от их назначения и характера действия:
Арифметические операции: включают базовые математические действия. Они используются для манипуляции числовыми значениями.
Логические операции: работают с логическими (булевыми) значениями. Эти операции используются для формирования условных выражений и управления потоком выполнения программы.
Операции сравнения: сравнивают значения и включают операции. Операции сравнения часто используются в условных конструкциях и циклах для принятия решений.
Побитовые операции: выполняются непосредственно над двоичным представлением данных. Эти операции применяются для манипуляций на низком уровне, таких как работа с флагами, масками и быстрые математические трюки.
Строковые операции: действия со строковыми значениями.
Операции присваивания: используются для назначения значений переменным.

Слайд #20
Арифметические операции
Сложение (+). Складывает два числа или объединяет две строки/списка.
Вычитание (-). Вычитает второе число из первого.
Умножение (*). Умножает два числа или повторяет строку/список заданное количество раз.
Деление (/). Делит первое число на второе.
Целочисленное деление (//). Делит первое число на второе, результат округляется до ближайшего меньшего целого числа.
Остаток от деления (%). Возвращает остаток от деления первого числа на второе.
Возведение в степень (**). Возводит число в заданную степень.
Сложение
3+5 # Результат: 8
'Hello' + ' World' # Результат: 'Hello World'
Вычитание
10-3 # Результат: 7
Умножение
4 * 3 # Результат: 12
'Ha' * 3 # Результат: 'HaHaHa'
Деление
8 / 2 # Результат: 4.0
Целочисленное деление
5 // 2 # Результат: 2
Остаток от деления
7 % 3 # Результат: 1
Возведение в
степень
2 ** 3 # Результат: 8

Слайд #21
Операции сравнения
Равно (==). Проверяет, равны ли два объекта.
Не равно (!=). Проверяет, не равны ли два объекта.
Больше (>). Проверяет, больше ли первое число, чем второе.
Меньше (<). Проверяет, меньше ли первое число, чем второе.
Больше или равно (>=). Проверяет, больше или равно ли первое число второму.
Меньше или равно (<=). Проверяет, меньше или равно ли первое число второму.
Равно
3 == 3 # Результат: True
Не равно
3 != 2 # Результат: True
Больше
5 > 3 # Результат: True
Меньше
3 < 5 # Результат: True
Больше или равно
5 >= 5 # Результат: True
Меньше или равно
3 <= 5 # Результат: True

Слайд #22
Логические операции
Конъюнкция. Возвращает True, если оба утверждения истинны.
Дизъюнкция. Возвращает True, если хотя бы одно утверждение истинно.
Инверсия. Инвертирует логическое значение.
Конъюнкция
True and True # Результат: True
Дизъюнкция
True or False # Результат: True
Инверсия
not False # Результат: True

Слайд #23
Побитовые операции
Побитовое И (&). Выполняет побитовое И между двумя числами.
Побитовое ИЛИ (|). Выполняет побитовое ИЛИ между двумя числами
Побитовое исключающее ИЛИ (^). Выполняет побитовое исключающее ИЛИ между двумя числами.
Побитовое отрицание (~). Инвертирует все биты числа.
Битовый сдвиг влево (<<). Сдвигает биты числа влево на заданное количество позиций.
Битовый сдвиг вправо (>>). Сдвигает биты числа вправо на заданное количество позиций.
Побитовое И
5 & 3 # Результат: 1 (0b101 & 0b011 = 0b001)
Побитовое ИЛИ
5 | 3 # Результат: 7 (0b101 | 0b011 = 0b111)
Побитовое исключающее ИЛИ
5 ^ 3 # Результат: 6 (0b101 ^ 0b011 = 0b110)
Побитовое отрицание
~5 # Результат: -6 (инвертирует 0b101 в 0b...1010)
Битовый сдвиг вправо
8 >> 2 # Результат: 2 (0b1000 >> 2 = 0b10)
Битовый сдвиг влево
8 >> 2 # Результат: 2 (0b1000 >> 2 = 0b10)

Слайд #24
Операции принадлежности
Принадлежность (in): Проверяет, содержится ли элемент в последовательности.
Не принадлежность (not in). Проверяет, не содержится ли элемент в последовательности.
Принадлежность
'a' in ['a', 'b', 'c'] # Результат: True
Не принадлежность
'x' not in ['a', 'b', 'c'] # Результат: True

Слайд #25
Операции тождественности
Тождественность (is). Проверяет, ссылаются ли две переменные на один и тот же объект.
Не тождественность (is not). Проверяет, ссылаются ли две переменные на разные объекты.
Тождественность
a = [1, 2, 3]
b = a
b is a # Результат: True
Не тождественность
a = [1, 2, 3]
b = [1, 2, 3]
b is not a # Результат: True

Слайд #26
Переменные
В Python переменная — это символьное имя, которое является ссылкой или указателем на объект. После того как объект был присвоен переменной, вы можете ссылаться на объект, используя имя переменной. В Python переменные не нужно объявлять или определять заранее, как во многих других языках программирования, что делает Python динамически типизированным языком.
Переменные в Python можно представить как контейнеры для хранения данных. Данные или объекты, на которые они указывают, могут быть числами, строками, списками, словарями и т.д. Имя переменной связывается с объектом в момент выполнения операции присваивания.

Слайд #27
Операция присваивания
Операция присваивания в Python использует символ равенства (=). Она указывает интерпретатору Python присвоить значение справа от = переменной, находящейся слева.
Здесь x является переменной, а 10 — значение, которое присваивается x. После этой операции переменная x ссылается на объект 10.
Особенности переменных в Python
Динамическая типизация. Вам не нужно указывать тип данных переменной, Python автоматически определяет его при выполнении кода.
Имена переменных. Могут состоять из букв, цифр и подчеркиваний, но не могут начинаться с цифры. Регистр букв имеет значение, так что var, Var и VAR будут тремя разными переменными.
Множественное присваивание. Python поддерживает множественное присваивание, позволяя присваивать значения нескольким переменным одновременно:
x = 10
a, b, c = 5, 3.2, "Hello"

Слайд #28
Операция присваивания
Ссылочная природа переменных. В Python все переменные являются ссылками на объекты. Это значит, что если вы присвоите одну переменную другой, обе переменные будут ссылаться на один и тот же объект:
x = [1, 2, 3]
y = x
# Изменения в 'y' повлияют на 'x', так как 'x' и 'y' указывают на один и тот же объект.
y.append(4) # x теперь [1, 2, 3, 4]
Неизменяемость некоторых типов данных. Типы данных, такие как числа, строки и кортежи, являются неизменяемыми. Это означает, что их нельзя изменить после создания. Если попытаться изменить неизменяемый объект, Python создаст новый объект с новым значением и переназначит переменную на этот новый объект.
Сборка мусора. Python автоматически управляет памятью и освобождает ее, когда объекты больше не используются, что упрощает работу с памятью в Python.
Переменные и операция присваивания являются основными концепциями в программировании на Python, позволяя хранить, изменять и управлять данными во время выполнения программы.

Слайд #29
Конструкции

Слайд #30
Конструкции

Слайд #31
Преобразование типов данных

Слайд #32
Базовые команды

Слайд #33
Базовые команды

Слайд #34
Экранизированные последовательности
Экранизированные последовательности (или escape-последовательности) в программировании — это комбинации символов, используемые в строковых литералах для представления специальных символов, которые сложно ввести напрямую через клавиатуру или которые могут быть интерпретированы по-разному в зависимости от контекста. Экранизированные последовательности начинаются с обратного слеша (\), за которым следует один или несколько символов, определяющих конкретную последовательность.
Экранизированные последовательности особенно важны при работе со строковыми данными, когда необходимо точно указать, как должны интерпретироваться специальные символы, или когда нужно вставить символы, которые могут быть неправильно интерпретированы компилятором или интерпретатором в контексте строки.

Слайд #35
Экранизированные последовательности

Слайд #36
Методы работы с текстом

Слайд #37

Слайд #38
Структурное программирование
Структурное программирование - это методология разработки программного обеспечения, в основе которой лежит принцип разбиения программы на небольшие, логически завершённые и независимые друг от друга структуры данных и процедуры (или функции), которые взаимодействуют друг с другом через явно определённые интерфейсы. Основной идеей структурного программирования является использование структурного разделения и контроля потока выполнения программы.
Принципы структурного программирования включают в себя:
Использование последовательности (последовательного выполнения операций) - программы строятся как последовательность операций, выполняемых поочередно, одна за другой.
Использование ветвлений (условных операторов) - позволяет программе принимать решение о выполнении различных операций в зависимости от условий.
Использование циклов (итераций) - позволяет повторять выполнение определенных операций или блоков кода до тех пор, пока выполняется определенное условие.
Использование подпрограмм (или функций) - это блоки кода, которые могут быть вызваны из других частей программы для выполнения определенной задачи.

Слайд #39
Структурное программирование
Использование структур данных - данные организуются в логические структуры, такие как массивы, списки, стеки и очереди, что обеспечивает удобство и эффективность обращения к ним и их обработки.
Эти принципы направлены на обеспечение более четкой структуры программы, что упрощает её понимание, разработку, отладку и поддержку. Структурное программирование способствует созданию более надежных и эффективных программных продуктов за счет уменьшения сложности и повышения модульности кода.

Слайд #40
Историческая справка
История структурного программирования берет начало во второй половине 20 века, когда представители научного сообщества начали осознавать проблемы, связанные с разработкой и поддержкой сложных программных систем. Одним из первых важных вехоположников в этом направлении стал Эдсгер Дейкстра, голландский ученый и выдающийся программист.
В 1968 году Дейкстра опубликовал знаменитую статью под названием "Go To Statement Considered Harmful" ("О вреде оператора go to"), в которой он критиковал широко распространенное использование оператора безусловного перехода в программах на языках программирования, таких как Fortran и ALGOL. Дейкстра аргументировал, что использование оператора go to усложняет понимание и анализ программы, делает её менее надежной и поддерживаемой.
На основе этих идей Дейкстры и других ученых, таких как Тони Хоар и Никлаус Вирт, развивались принципы структурного программирования. В 1970-х годах были созданы новые языки программирования, такие как Pascal и С, которые поддерживали структурное программирование и предоставляли более высокий уровень абстракции для разработчиков.
Тони Хоар (1934)
Эдсгер Дейкстра (1930-2002)

Слайд #41
Историческая справка
Одним из важных моментов в истории структурного программирования стало появление метода структурного программирования, известного как "строительные блоки", предложенного Никлаусом Виртом в 1972 году. Этот метод предлагал разбить программу на небольшие логически завершенные блоки (или структуры), которые могли быть связаны друг с другом через явно определенные интерфейсы. Это подходило под общие идеи структурного программирования, такие как модульность, четкая структура и контроль потока выполнения.
С течением времени структурное программирование стало широко принятым стандартом в разработке программного обеспечения, и его принципы были внедрены в множество языков программирования и методологий разработки, среди которых особенно выделяются объектно-ориентированное программирование и функциональное программирование.
Николас Вирт (1934-2024)

Слайд #42
Теорема Бёма-Якопини
Теорема Бёма-Якопини (иногда также известная как теорема Якопини или принцип структурной индукции) является фундаментальным результатом в теории алгоритмов и структурного программирования. Она утверждает, что любой алгоритм, который может быть выражен с использованием последовательности присваиваний, условных операторов (ветвлений) и циклов (итераций), может быть представлен в виде структурно упорядоченной программы.
Формулируется теорема следующим образом:
"Любая алгоритмическая задача, которая может быть решена с помощью последовательности присваиваний, условных операторов (ветвлений) и циклов (итераций), может быть решена с помощью только последовательности присваиваний, условных операторов (ветвлений) и циклов (итераций).".
Коррадо Бём (1923-2017)

Слайд #43
Теорема Бёма-Якопини
Эта теорема была впервые доказана Корнелем Бёмом в 1966 году и затем независимо доказана Михаилом Якопини в 1968 году. Она имеет огромное значение для понимания структуры алгоритмов и программирования, поскольку утверждает, что любой алгоритм можно выразить с использованием лишь ограниченного набора базовых конструкций, что обеспечивает единый и общий подход к алгоритмическому мышлению.
Теорема Бёма-Якопини является основой для различных методов анализа алгоритмов и программ, таких как структурная индукция, а также для разработки стандартных шаблонов и приемов программирования. Она подчеркивает важность модульного и структурного подходов к программированию и способствует развитию методов верификации и анализа программного обеспечения.
Коррадо Бём (1923-2017)

Слайд #44
Структура Python
1. Шапка файла. Обычно содержит информацию о кодировке и другие метаданные.
!/usr/bin/env python
# -*- coding: utf-8 -*-
2. Импорты. Импортируются необходимые модули и библиотеки.
import module1
import module2
3. Глобальные переменные. Определение глобальных переменных, которые будут использоваться в файле.
GLOBAL_CONSTANT = 42
4. Определения функций и классов. Определение функций и/или классов, которые используются в основной части программы.
class MyClass:
def __init__(self, param):
self.param = param
def some_method(self):
pass
def my_function(arg):
pass

Слайд #45
Структура Python
5. Основная часть программы. Это место, где запускается основной код программы, вызываются функции и используются классы.
if __name__ == "__main__":
obj = MyClass(param_value)
obj.some_method()
my_function(argument_value)
6. Документация и комментарии. Комментарии и строки документации для улучшения понимания кода. # Это пример строки документации для функции
def my_function(arg):
"""
Описание функции
:param arg: Описание параметра
:return: Описание возвращаемого значения
"""
pass

Слайд #46
Пример неструктурированной программы
def main():
TEXT = print("Привет! Давай играть в угадай число.")
import random, sys
secret_number = random.randint(1, 20)
print("Угадай число от 1 до 20.")
while True:
print("Попробуй угадать.")
guess = input()
guess = int(guess)
if guess < secret_number:
print("Твое число слишком маленькое.")
elif guess > secret_number:
print("Твое число слишком большое.")
else:
break print("Ура! Ты угадал число!")
if __name__ == "__main__":
main()
Эта программа неструктурированная,
потому что:
Нет комментариев или строк документации для пояснения кода.
Импорты расположены в произвольном месте.
Нет разделения на глобальные переменные, функции и основную часть программы.
Отсутствует структура и организация.

Слайд #47
Пример структурированной программы
import random
def generate_secret_number():
"""Генерирует случайное число от 1 до 20."""
return random.randint(1, 20)
def get_guess_from_user():
"""Получает предполагаемое число от пользователя."""
return int(input("Введите число от 1 до 20: "))
def check_guess(secret_number, guess):
"""Проверяет предполагаемое число пользователя."""
if guess < secret_number:
print("Твое число слишком маленькое.")
elif guess > secret_number:
print("Твое число слишком большое.")
else:
return True
return False
def main():
print("Привет! Давай играть в угадай число.")
secret_number = generate_secret_number()
print("Угадай число от 1 до 20.")
while True:
guess = get_guess_from_user()
if check_guess(secret_number, guess):
break
print("Ура! Ты угадал число!")
if __name__ == "__main__":
main()

Слайд #48
Пример структурированной программы
Этот файл структурирован потому что:
Каждая функция имеет строку документации для пояснения ее назначения.
Импорты размещены вверху файла.
Глобальные переменные отсутствуют, так как их нет в этом примере.
Функции разделены логически и организованы по порядку их вызова.
Основная часть программы находится в функции main(), которая вызывается только если файл используется как скрипт.

Слайд #49

Слайд #50
Задача №1
Создайте переменную a и b, и присвойте им значения 5 и 3 соответственно. Затем выведите результат сложения a и b.

Слайд #51
Задача №2
Создайте переменную c, которая будет равна результату умножения a на b.

Слайд #52
Задача №3
Создайте переменную d, которая будет равна результату деления a на b.

Слайд #53
Задача №4
Создайте переменную e, которая будет равна целочисленному результату деления a на b.

Слайд #54
Задача №5
Создайте переменную f, которая будет равна остатку от деления a на b.

Слайд #55
Задача №6
Создайте переменную g, которая будет равна результату возведения a в степень b.

Слайд #56
Задача №7
Создайте переменную h, которая будет равна результату логической операции "И" для a и b.

Слайд #57
Задача №8
Создайте переменную i, которая будет равна результату логической операции "ИЛИ" для a и b.

Слайд #58
Задача №9
Создайте переменную j, которая будет равна результату логической операции "НЕ" для a.

Слайд #59
Задача №10
Создайте переменную k, которая будет равна результату побитового "И" для a и b.

Слайд #60
Задача №11
Создайте переменную l, которая будет равна результату побитового "ИЛИ" для a и b.

Слайд #61
Задача №12
Создайте переменную m, которая будет равна результату побитового "НЕ" для a.

Слайд #62
Задача №13
Создайте переменную n, которая будет равна результату побитового сдвига влево a на b разрядов.

Слайд #63
Задача №14
Создайте переменную o, которая будет равна результату побитового сдвига вправо a на b разрядов.

Слайд #64
Задача №15
Создайте переменную p, которая будет равна результату проверки, является ли a равным b.

Слайд #65
Задача №16
Создайте переменную q, которая будет равна результату проверки, является ли a не равным b.

Слайд #66
Задача №17
Создайте переменную r, которая будет равна результату проверки, является ли a больше b.

Слайд #67
Задача №18
Создайте переменную s, которая будет равна результату проверки, является ли a меньше b.

Слайд #68
Задача №19
Создайте переменную t, которая будет равна результату проверки, является ли a больше или равным b.

Слайд #69
Задача №20
Создайте переменную u, которая будет равна результату проверки, является ли a меньше или равным b.

Слайд #70

Слайд #71
Домашнее задание
Приветствие пользователя. Напишите программу, которая запрашивает имя пользователя с помощью input, а затем выводит приветствие с его именем через print.
Конвертер единиц. Создайте программу, которая просит пользователя ввести количество километров, а затем конвертирует их в мили. Выведите результат. (1 км ≈ 0.621371 мили).
Калькулятор суммы. Напишите программу, которая запрашивает у пользователя два числа и выводит их сумму.
Проверка четности числа. Программа запрашивает у пользователя число и выводит сообщение о том, четное оно или нечетное.
Калькулятор возраста собаки. Напишите программу, которая запрашивает возраст собаки в человеческих годах и конвертирует его в "собачьи годы" (первые два года умножаются на 10.5, остальные – на 4) и выводит результат.

Слайд #72
