Алгоритмизация и программирование. Лекция 1

Содержание

Слайд 2

План Алгоритм. Свойства алгоритма. Способы описания алгоритма Блок-схемы алгоритмов Введение в

План

Алгоритм. Свойства алгоритма. Способы описания алгоритма
Блок-схемы алгоритмов
Введение в Python
Первая программа на

Python
Переменные и типы данных
Операции с числами
Условные выражения
Циклы
Функции
Слайд 3

Алгоритм. Свойства алгоритма. Способы описания алгоритма Если мы хотим написать программу

Алгоритм. Свойства алгоритма. Способы описания алгоритма

Если мы хотим написать программу на

каком-либо языке программирования, то сначала нам следует составить алгоритм решения задачи.
Алгоритм - это точное и простое описание последовательности действий для решения данной задачи. Алгоритм содержит несколько шагов, которые должны выполняться в определенной последовательности. Каждый шаг алгоритма может состоять из одной или нескольких простых операций.
Слайд 4

Алгоритм. Свойства алгоритма. Способы описания алгоритма Каждый из нас ежедневно использует

Алгоритм. Свойства алгоритма. Способы описания алгоритма

Каждый из нас ежедневно использует различные

алгоритмы: инструкции, правила, рецепты и т. д. Обычно мы это делаем не задумываясь. Например, открывая дверь ключом, никто не размышляет над тем, в какой последовательности выполнять действия. Однако чтобы кого-нибудь научить открывать дверь, придется четко указать и сами действия, и порядок их выполнения. Например:
1. Достать ключ.
2. Вставить ключ в замочную скважину.
3. Повернуть ключ два раза против часовой стрелки.
4. Вынуть ключ.
Слайд 5

Алгоритм. Свойства алгоритма. Способы описания алгоритма Представим, что мы поменяли местами

Алгоритм. Свойства алгоритма. Способы описания алгоритма

Представим, что мы поменяли местами второе

и третье действия. Мы сможем выполнить и этот алгоритм, но дверь не откроется, т. е. алгоритм станет невыполнимым.
Для алгоритма важен не только набор действий, но и то, в каком порядке они выполняются. Понятие алгоритма в информатике является фундаментальным.
Таким же, какими являются понятия точки, прямой и плоскости в геометрии, вещества в химии, пространства и времени в физике и т. д.
Слайд 6

Алгоритм. Свойства алгоритма. Способы описания алгоритма Свойства алгоритма: • дискретность (прерывность,

Алгоритм. Свойства алгоритма. Способы описания алгоритма

Свойства алгоритма:
• дискретность (прерывность, раздельность) -

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

Алгоритм. Свойства алгоритма. Способы описания алгоритма Способы описания алгоритмов словесный; графический; табличный; формульный.

Алгоритм. Свойства алгоритма. Способы описания алгоритма

Способы описания алгоритмов
словесный;
графический;
табличный;
формульный.

Слайд 8

Алгоритм. Свойства алгоритма. Способы описания алгоритма Словесный способ каждый из нас

Алгоритм. Свойства алгоритма. Способы описания алгоритма

Словесный способ каждый из нас использует

ежедневно, пересказывая собеседнику, например, различные инструкции, правила, кулинарные рецепты, т. е. какую-то последовательность, приводящую к конечному результату. 
Слайд 9

Алгоритм. Свойства алгоритма. Способы описания алгоритма Графический способ представления алгоритмов является

Алгоритм. Свойства алгоритма. Способы описания алгоритма

Графический способ представления алгоритмов является более

компактным и наглядным по сравнению со словесным. Как часто для лучшего понимания той или иной ситуации нам проще начертить какую-то схему, план, согласно которым мы будем действовать.
В программировании данный способ предпочтителен, поскольку позволяет с помощью последовательности функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий, представить ход решения той или иной задачи.
Такое представление алгоритма называется структурной схемой алгоритма, или блок-схемой.
Слайд 10

Алгоритм. Свойства алгоритма. Способы описания алгоритма Табличный способ используется, например, в

Алгоритм. Свойства алгоритма. Способы описания алгоритма

Табличный способ используется, например, в бухгалтерии

при составлении ежегодных отчетов, сводок и т. д.
Слайд 11

Алгоритм. Свойства алгоритма. Способы описания алгоритма Формульный способ находит свое применение

Алгоритм. Свойства алгоритма. Способы описания алгоритма

Формульный способ находит свое применение при

решении задач из области математики, физики и т. д. Например, при решении квадратного уравнения мы приступаем к нахождению дискриминанта уравнения, а затем, в зависимости от полученного результата, находим корни уравнения по известным всем формулам.
Слайд 12

Блок-схемы алгоритмов Блок-схема — распространённый тип схем (графических моделей), описывающих алгоритмы

Блок-схемы алгоритмов

Блок-схема — распространённый тип схем (графических моделей), описывающих алгоритмы или

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

Элементы блок-схем алгоритмов Символ отображает вход из внешней среды и выход

Элементы блок-схем алгоритмов

Символ отображает вход из внешней среды и выход во

внешнюю среду (начало или конец схемы программы, внешнее использование и источник или пункт назначения данных).
На практике имеют смысл следующие описания ограничителей: начало/конец, запуск/останов, перезапуск (подразумевает перезапуск данной блок-схемы), ошибка (подразумевает завершение алгоритма с ошибкой), исключение (подразумевает исполнение программного исключения)

Ограничитель

Слайд 14

Элементы блок-схем алгоритмов Символ отображает данные, носитель данных не определён. Преобразование

Элементы блок-схем алгоритмов

Символ отображает данные, носитель данных не определён.
Преобразование данных в

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

Данные (ввод-вывод)

Слайд 15

Элементы блок-схем алгоритмов Символ отображает функцию обработки данных любого вида (выполнение

Элементы блок-схем алгоритмов

Символ отображает функцию обработки данных любого вида (выполнение определённой

операции или группы операций, приводящее к изменению значения, формы или размещения информации или к определению, по которому из нескольких направлений потока следует двигаться).

Действие

Слайд 16

Элементы блок-схем алгоритмов Отображает решение или функцию переключательного типа с одним

Элементы блок-схем алгоритмов

Отображает решение или функцию переключательного типа с одним входом

и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определённых внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. 

Вопрос (условие или решение)

Слайд 17

Элементы блок-схем алгоритмов Если выходов два или три, то обычно каждый

Элементы блок-схем алгоритмов

Если выходов два или три, то обычно каждый выход

обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трёх, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае — сравнение (три выхода: >, <, =); в программировании — условные операторы if (два выхода: true, false) и case (множество выходов).
Слайд 18

Элементы блок-схем алгоритмов Символ отображает предопределённый процесс, состоящий из одной или

Элементы блок-схем алгоритмов

Символ отображает предопределённый процесс, состоящий из одной или нескольких

операций или шагов программы, которые определены в другом месте (в подпрограмме, модуле). Например, в программировании − вызов процедуры или функции.

Предопределённый процесс (функция)

Слайд 19

Элементы блок-схем алгоритмов Символ используют для добавления описательных комментариев или пояснительных

Элементы блок-схем алгоритмов

Символ используют для добавления описательных комментариев или пояснительных записей

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

Комментарий

Слайд 20

Элементы блок-схем алгоритмов Также символ комментария следует использовать в тех случаях,

Элементы блок-схем алгоритмов

Также символ комментария следует использовать в тех случаях, когда

объём текста, помещаемого внутри некоего символа (например, символ процесса, символ данных и др.), превышает размер самого этого символа. Комментарии используют совместно с терминаторами для описания входных аргументов алгоритма при описании функций
Слайд 21

Элементы блок-схем алгоритмов Символ, состоящий из двух частей, отображает начало и

Элементы блок-схем алгоритмов

Символ, состоящий из двух частей, отображает начало и конец

цикла. Обе части символа имеют один и тот же идентификатор. Условия для инициализации, приращения, завершения и т. д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие.
Слайд 22

Элементы блок-схем алгоритмов Пример применения цикла.

Элементы блок-схем алгоритмов

Пример применения цикла.

Слайд 23

Элементы блок-схем алгоритмов Символ отображает выход в часть схемы и вход

Элементы блок-схем алгоритмов

Символ отображает выход в часть схемы и вход из

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

Соединитель

Слайд 24

Введение в Python Python представляет популярный высокоуровневый язык программирования, который предназначен

Введение в Python

Python представляет популярный высокоуровневый язык программирования, который предназначен для

создания приложений различных типов. Это и веб-приложения, и игры, и настольные программы, и работа с базами данных. Довольно большое распространение питон получил в области машинного обучения и исследований искусственного интеллекта.
Впервые язык Python был анонсирован в 1991 году голландским разработчиком Гвидо Ван Россумом. С тех пор данный язык проделал большой путь развития. В 2000 году была издана версия 2.0, а в 2008 году - версия 3.0.
Слайд 25

Введение в Python Основные особенности языка программирования Python: Скриптовый язык. Код

Введение в Python

Основные особенности языка программирования Python:
Скриптовый язык. Код программ определяется

в виде скриптов.
Поддержка самых различных парадигм программирования, в том числе объектно-ориентированной и функциональной парадигм.
Интерпретация программ. Для работы со скриптами необходим интерпретатор, который запускает и выполняет скрипт.
Портативность и платформонезависимость. Не имеет значения, какая у нас операционная система - Windows, Mac OS, Linux, нам достаточно написать скрипт, который будет запускаться на всех этих ОС при наличии интерпретатора
Автоматическое управление памяти
Динамическая типизация
Слайд 26

Введение в Python *Пояснение: Сценарный язык (язык сценариев, скриптовой язык; англ.

Введение в Python

*Пояснение:
Сценарный язык (язык сценариев, скриптовой язык; англ. scripting language)

— высокоуровневый язык сценариев (англ. script) — кратких описаний действий, выполняемых системой. Разница между программами и сценариями довольно размыта. Сценарий — это программа, имеющая дело с готовыми программными компонентами, которые, однажды загруженные, в своей работе не зависят от дальнейшего наличия/отсутствия подключения к Сети.
Согласно Джону Устерхауту, автору языка Tcl, высокоуровневые языки можно разделить на языки системного программирования (англ. system programming languages) и сценарные языки (англ. scripting languages). Последние он также назвал склеивающими языками (англ. glue languages) или языками системной интеграции (англ. system integration languages). Сценарии обычно интерпретируются, а не компилируются.
Слайд 27

Введение в Python Выполнение программы на Python выглядит следующим образом. Сначала

Введение в Python

Выполнение программы на Python выглядит следующим образом. Сначала мы

пишем в текстовом редакторе скрипт с набором выражений на данном языке программирования. Передаем этот скрипт на выполнение интерпретатору. Интерпретатор транслирует код в промежуточный байткод, а затем виртуальная машина переводит полученный байткод в набор инструкций, которые выполняются операционной системой.
Слайд 28

Введение в Python Здесь стоит отметить, что хотя формально трансляция интерпретатором

Введение в Python

Здесь стоит отметить, что хотя формально трансляция интерпретатором исходного

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

Введение в Python Python - очень простой язык программирования, он имеет

Введение в Python

Python - очень простой язык программирования, он имеет лаконичный

и в то же время довольно простой и понятный синтаксис. Соответственно его легко изучать, и собственно это одна из причин, по которой он является одним из самых популярных языков программирования именно для обучения. В частности, в 2014 году он был признан самым популярным языком программирования для обучения в США.
Python также популярен не только в сфере обучения, но в написании конкретных программ в том числе коммерческого характера. В немалой степени поэтому для этого языка написано множество библиотек, которые мы можем использовать.
Кроме того, у данного языка программирования очень большое коммьюнити, в интернете можно найти по данному языку множество полезных материалов, примеров, получить квалифицированную помощь специалистов.
Слайд 30

Введение в Python Установка Python Для создания программ на Python нам

Введение в Python

Установка Python
Для создания программ на Python нам потребуется интерпретатор.

Для его установки перейдем на страницу https://www.python.org/downloads/
Слайд 31

Введение в Python По нажатию на кнопку будет загружен соответствующей текущей

Введение в Python

По нажатию на кнопку будет загружен соответствующей текущей ОС

установщик Python.
На ОС Windows при запуске инсталлятора запускает окно мастера установки:
Слайд 32

Введение в Python Здесь мы можем задать путь, по которому будет

Введение в Python

Здесь мы можем задать путь, по которому будет устанавливаться

интерпретатор. Оставим его по умолчанию, то есть C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python36\.
Кроме того, в самом низу отметим флажок "Add Python 3.9 to PATH", чтобы добавить путь к интерпретатору в переменные среды.
После установки в меню Пуск на ОС Windows мы сможем найти иконки для доступа к разным утилитам питона:
Слайд 33

Введение в Python Здесь утилита Python 3.9 (64-bit) представляет интерпретатор, в

Введение в Python

Здесь утилита Python 3.9 (64-bit) представляет интерпретатор, в котором

мы можем запустить скрипт. В файловой системе сам файл интерпретатора можно найти по пути, по которому производилась установка.
На Windows по умолчанию это путь C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python37, а сам интерпретатор представляет файл python.exe. На ОС Linux установка производится по пути /usr/local/bin/python3.9.
Слайд 34

Первая программа на Python После установки интерпретатора, как было описано в

Первая программа на Python

После установки интерпретатора, как было описано в выше,

мы можем начать создавать приложения на Python.
По умолчанию (на Windows) он будент установлен по пути C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python39\ и представляет файл под названием python.exe.
Слайд 35

Первая программа на Python Для этой программы использовалась функция print(), которая выводит некоторую строку на консоль.

Первая программа на Python

Для этой программы использовалась функция print(), которая выводит некоторую

строку на консоль.
Слайд 36

Первая программа на Python Создание файла программы В реальности, как правило,

Первая программа на Python

Создание файла программы
В реальности, как правило, программы определяются

во внешних файлах-скриптах и затем передаются интерпретатору на выполнение. Поэтому создадим файл программы. Для этого на диске C или где-нибудь в другом месте файловой системы определим для скриптов папку python. А в этой папке создадим новый текстовый файл, который назовем hello.py. По умолчанию файлы с кодом на языке Python, как правило, имеют расширение py.
Слайд 37

Первая программа на Python Откроем этот файл в любом текстовом редакторе

Первая программа на Python

Откроем этот файл в любом текстовом редакторе и

добавим в него следующий код:
Слайд 38

Первая программа на Python Скрипт состоит из двух строк. Первая строка

Первая программа на Python

Скрипт состоит из двух строк. Первая строка с

помощью функции input() ожидает ввода пользователем своего имени. Введенное имя затем попадает в переменную name.
Вторая строка с помощью функции print() выводит приветствие вместе с введенным именем.
Слайд 39

Введение в написание программ Программа на языке Python состоит из набора

Введение в написание программ

Программа на языке Python состоит из набора инструкций.

Каждая инструкция помещается на новую строку. Например:
Слайд 40

Введение в написание программ Большую роль в Python играют отступы. Неправильно

Введение в написание программ

Большую роль в Python играют отступы. Неправильно поставленный

отступ фактически является ошибкой. Например, в следующем случае мы получим ошибку, хотя код будет практически аналогичен приведенному выше:
Слайд 41

Введение в написание программ Поэтому стоит помещать новые инструкции сначала строки.

Введение в написание программ

Поэтому стоит помещать новые инструкции сначала строки. В

этом одно из важных отличий пайтона от других языков программирования, как C# или Java.
Однако стоит учитывать, что некоторые конструкции языка могут состоять из нескольких строк. Например, условная конструкция if:
Слайд 42

Введение в написание программ В данном случае если 1 меньше 2,

Введение в написание программ

В данном случае если 1 меньше 2, то

выводится строка "Hello". И здесь уже должен быть отступ, так как инструкция print("Hello") используется не сама по себе, а как часть условной конструкции if. Причем отступ, согласно руководству по оформлению кода, желательно делать из такого количество пробелов, которое кратно 4 (то есть 4, 8, 16 и т.д.) Хотя если отступов будет не 4, а 5, то программа также будет работать.
Таких конструкций не так много, поэтому особой путаницы по поводу где надо, а где не надо ставить пробелы, не должно возникнуть.
Слайд 43

Введение в написание программ Регистрозависимость Python - регистрозависимый язык, поэтому выражения

Введение в написание программ

Регистрозависимость
Python - регистрозависимый язык, поэтому выражения print и

Print или PRINT представляют разные выражения. И если вместо метода print для вывода на консоль мы попробуем использовать метод Print:
Слайд 44

Введение в написание программ Комментарии Для отметки, что делает тот или

Введение в написание программ

Комментарии
Для отметки, что делает тот или иной участок

кода, применяются комментарии. При трансляции и выполнении программы интерпретатор игнорирует комментарии, поэтому они не оказывают никакого влияния на работу программы.
Комментарии в Python бывают блочные и строчные. Все они предваряются знаком решетки (#).
Слайд 45

Введение в написание программ Основные функции Python предоставляет ряд встроенных функций.

Введение в написание программ

Основные функции
Python предоставляет ряд встроенных функций. Некоторые из

них используются очень часто, особенно на начальных этапах изучения языка, поэтому рассмотрим их. Основной функцией для вывода информации на консоль является функция print().
Слайд 46

Введение в написание программ Если функция print отвечает за вывод, то

Введение в написание программ

Если функция print отвечает за вывод, то функция

input отвечает за ввод информации. В качестве необязательного параметра эта функция принимает приглашение к вводу и возвращает введенную строку, которую мы можем сохранить в переменную:
Слайд 47

Переменные и типы данных Переменная хранит определенные данные. Название переменной в

Переменные и типы данных

Переменная хранит определенные данные. Название переменной в Python

должно начинаться с алфавитного символа или со знака подчеркивания и может содержать алфавитно-цифровые символы и знак подчеркивания. И кроме того, название переменной не должно совпадать с названием ключевых слов языка Python. Ключевых слов не так много, их легко запомнить: and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield.
Слайд 48

Переменные и типы данных Например, создадим переменную:

Переменные и типы данных

Например, создадим переменную:

Слайд 49

Переменные и типы данных В пайтоне применяется два типа наименования переменных:

Переменные и типы данных

В пайтоне применяется два типа наименования переменных: camel

case и underscore notation (snake case). И также надо учитывать регистрозависимость, поэтому переменные name и Name будут представлять разные объекты.
Слайд 50

Переменные и типы данных Переменная хранит данные одного из типов данных.

Переменные и типы данных

Переменная хранит данные одного из типов данных. В

Python существует множество различных типов данных, которые подразделяются на категории: числа, последовательности, словари, наборы:
boolean - логическое значение True или False
int - представляет целое число, например, 1, 4, 8, 50.
float - представляет число с плавающей точкой, например, 1.2 или 34.76
complex - комплексные числа
str - строки, например "hello". В Python 3.x строки представляют набор символов в кодировке Unicode
bytes - последовательность чисел в диапазоне 0-255
byte array - массив байтов, аналогичен bytes с тем отличием, что может изменяться
list - список
tuple - кортеж
set - неупорядоченная коллекция уникальных объектов
frozen set - то же самое, что и set, только не может изменяться (immutable)
dict - словарь, где каждый элемент имеет ключ и значение
Слайд 51

Переменные и типы данных Python является языком с динамической типизацией. Он

Переменные и типы данных

Python является языком с динамической типизацией. Он определяет

тип данных переменной исходя из значения, которое ей присвоено. Так, при присвоении строки в двойных или одинарных кавычках переменная имеет тип str. При присвоении целого числа Python автоматически определяет тип переменной как int. Чтобы определить переменную как объект float, ей присваивается дробное число, в котором разделителем целой и дробной части является точка. Число с плавающей точкой можно определять в экспоненциальной записи:
Слайд 52

Переменные и типы данных Число float может иметь только 18 значимых

Переменные и типы данных

Число float может иметь только 18 значимых симолов.

Так, в данном случае используются только два символа - 3.9. И если число слишком велико или слишком мало, то мы можем записывать число в подобной нотации, используя экспоненту. Число после экспоненты указывает степень числа 10, на которое надо умножить основное число - 3.9.
При этом в процессе работы программы мы можем изменить тип переменной, присвоив ей значение другого типа:
Слайд 53

Переменные и типы данных С помощью функции type() динамически можно узнать текущий тип переменной:

Переменные и типы данных

С помощью функции type() динамически можно узнать текущий

тип переменной:
Слайд 54

Операции с числами Арифметические операции Python поддерживает все распространенные арифметические операции:

Операции с числами

Арифметические операции
Python поддерживает все распространенные арифметические операции:

Слайд 55

Операции с числами При последовательном использовании нескольких арифметических операций их выполнение

Операции с числами

При последовательном использовании нескольких арифметических операций их выполнение производится

в соответствии с их приоритетом. В начале выполняются операции с большим приоритетом. Приоритеты операций в порядке убывания приведены в следующей таблице.
Операции
Направление
**
Справа налево
* / // %
Слева направо
+ -
Слева направо
Слайд 56

Операции с числами Пусть у нас выполняется следующее выражение:

Операции с числами

Пусть у нас выполняется следующее выражение:

Слайд 57

Операции с числами Чтобы переопределить порядок операций, можно использовать скобки: Следует

Операции с числами

Чтобы переопределить порядок операций, можно использовать скобки:
Следует отметить, что

в арифметических операциях могут принимать участие как целые, так и дробные числа. Если в одной операции участвует целое число (int) и число с плавающей точкой (float), то целое число приводится к типу float.
Слайд 58

Операции с числами Арифметические операции с присвоением Ряд специальных операций позволяют

Операции с числами

Арифметические операции с присвоением
Ряд специальных операций позволяют использовать присвоить

результат операции первому операнду:
+= Присвоение результата сложения
-= Присвоение результата вычитания
*= Присвоение результата умножения
/= Присвоение результата от деления
//= Присвоение результата целочисленного деления
**= Присвоение степени числа
%= Присвоение остатка от деления
Слайд 59

Операции с числами Примеры операций:

Операции с числами

Примеры операций:

Слайд 60

Операции с числами Функции преобразования чисел Ряд встроенных функций в Python

Операции с числами

Функции преобразования чисел
Ряд встроенных функций в Python позволяют работать

с числами. В частности, функции int() и float() позволяют привести значение к типу int и float соответственно.
Например, пусть у нас будет следующий код:
Мы ожидаем, что "2" + 3 будет равно 5. Однако этот код сгенерирует исключение, так как первое число на самом деле представляет строку.
Слайд 61

Операции с числами И чтобы все заработало как надо, необходимо привести

Операции с числами

И чтобы все заработало как надо, необходимо привести строку

к числу с помощью функции int():
Слайд 62

Операции с числами Аналогичным образом действует функция float(), которая преобразует в

Операции с числами

Аналогичным образом действует функция float(), которая преобразует в число

с плавающей точкой. Но вообще с дробными числами надо учитывать, что результат операций с ними может быть не совсем точным. Например:
Слайд 63

Операции с числами В данном случае мы ожидаем получить число 0.40002,

Операции с числами

В данном случае мы ожидаем получить число 0.40002, однако

в конце через ряд нулей появляется еще какая-то четверка. Или еще одно выражение:
Слайд 64

Операции с числами В этот случае для округления результата мы можем

Операции с числами

В этот случае для округления результата мы можем использовать

функцию round():
Первый параметр функции - округляемое число, а второй - сколько знаков после запятой должно содержать получаемое число.
Слайд 65

Операции с числами Представление числа При обычном определении числовой переменной она

Операции с числами

Представление числа
При обычном определении числовой переменной она получает значение

в десятичной системе. Но кроме десятичной в Python мы можем использовать двоичную, восьмеричную и шестнадцатеричную системы.
Для определения числа в двоичной системе перед его значением ставится 0 и префикс b
Для определения числа в восьмеричной системе перед его значением ставится 0 и префикс o
Для определения числа в шестнадцатеричной системе перед его значением ставится 0 и префикс x
Слайд 66

Операции с числами Пример:

Операции с числами

Пример:

Слайд 67

Операции с числами И с числами в других системах измерения также можно проводить арифметические операции:

Операции с числами

И с числами в других системах измерения также можно

проводить арифметические операции:
Слайд 68

Операции с числами Для вывода числа в различных системах исчисления используются

Операции с числами

Для вывода числа в различных системах исчисления используются функция

format, которая вызывается у строки. В эту строку передаются различные форматы. Для двоичной системы "{0:08b}", где число 8 указывает, сколько знаков должно быть в записи числа. Если знаков указано больше, чем требуется для числа, то ненужные позиции заполняются нулями. Для шестнадцатеричной системы применяется формат "{0:02x}". И здесь все аналогично - запись числа состоит из двух знаков, если один знак не нужен, то вместо него вставляется ноль. А для записи в восьмеричной системе испольуется формат "{0:02o}".
Слайд 69

Условные выражения Ряд операций представляют условные выражения. Все эти операции принимают

Условные выражения

Ряд операций представляют условные выражения. Все эти операции принимают два

операнда и возвращают логическое значение, которое в Python представляет тип boolean. Существует только два логических значения - True (выражение истинно) и False (выражение ложно).
Слайд 70

Условные выражения Операции сравнения Простейшие условные выражения представляют операции сравнения, которые

Условные выражения

Операции сравнения
Простейшие условные выражения представляют операции сравнения, которые сравнивают два

значения. Python поддерживает следующие операции сравнения:
==
Возвращает True, если оба операнда равны. Иначе возвращает False.
!=
Возвращает True, если оба операнда НЕ равны. Иначе возвращает False.
> (больше чем)
Возвращает True, если первый операнд больше второго.
< (меньше чем)
Возвращает True, если первый операнд меньше второго.
>= (больше или равно)
Возвращает True, если первый операнд больше или равен второму.
<= (меньше или равно)
Возвращает True, если первый операнд меньше или равен второму.
Слайд 71

Условные выражения Примеры операций сравнения:

Условные выражения

Примеры операций сравнения:

Слайд 72

Условные выражения Операции сравнения могут сравнивать различные объекты - строки, числа,

Условные выражения

Операции сравнения могут сравнивать различные объекты - строки, числа, логические

значения, однако оба операнда операции должны представлять один и тот же тип.
Слайд 73

Условные выражения Логические операции Для создания составных условных выражений применяются логические

Условные выражения

Логические операции
Для создания составных условных выражений применяются логические операции. В

Python имеются следующие логические операторы:
and (логическое умножение)
Возвращает True, если оба выражения равны True
Слайд 74

Условные выражения В данном случае оператор and сравнивает результаты двух выражений:

Условные выражения

В данном случае оператор and сравнивает результаты двух выражений: age

> 21 weight == 58. И если оба этих выражений возвращают True, то оператор and также возвращает True. Причем в качестве одно из выражений необязательно выступает операция сравнения: это может быть другая логическая операция или просто переменная типа boolean, которая хранит True или False.
Слайд 75

Условные выражения or (логическое сложение) Возвращает True, если хотя бы одно из выражений равно True

Условные выражения

or (логическое сложение)
Возвращает True, если хотя бы одно из выражений равно

True
Слайд 76

Условные выражения not (логическое отрицание) Возвращает True, если выражение равно False

Условные выражения

not (логическое отрицание)
Возвращает True, если выражение равно False

Слайд 77

Условные выражения Если один из операндов оператора and возвращает False, то

Условные выражения

Если один из операндов оператора and возвращает False, то другой операнд уже

не оценивается, так как оператор в любом случае возвратит False. Подобное поведение позволяет немного увеличить производительность, так как не приходится тратить ресурсы на оценку второго операнда.
Аналогично если один из операндов оператора or возвращает True, то второй операнд не оценивается, так как оператор в любом случае возвратит True.
Слайд 78

Операции со строками Строка представляет последовательность символов в кодировке Unicode, заключенных

Операции со строками

Строка представляет последовательность символов в кодировке Unicode, заключенных в

кавычки. Причем в Python мы можем использовать как одинарные, так и двойные кавычки:
Слайд 79

Операции со строками Одной из самых распространенных операций со строками является

Операции со строками

Одной из самых распространенных операций со строками является их

объединение или конкатенация. Для объединения строк применяется знак плюса:
Слайд 80

Операции со строками С объединением двух строк все просто, но что,

Операции со строками

С объединением двух строк все просто, но что, если

нам надо сложить строку и число? В этом случае необходимо привести число к строке с помощью функции str():
Слайд 81

Операции со строками Эскейп-последовательности Кроме стандартных символов строки могут включать управляющие

Операции со строками

Эскейп-последовательности
Кроме стандартных символов строки могут включать управляющие эскейп-последовательности, которые

интерпретируются особым образом. Например, последовательность \n представляет перевод строки. Поэтому следующее выражение:
Слайд 82

Операции со строками Кроме того, существуют символы, которые вроде бы сложно

Операции со строками

Кроме того, существуют символы, которые вроде бы сложно использовать

в строке. Например, кавычки. И чтобы отобразить кавычки (как двойные, так и одинарные) внутри строки, перед ними ставится слеш:
Слайд 83

Операции со строками Сравнение строк Особо следует сказать о сравнении строк.

Операции со строками

Сравнение строк
Особо следует сказать о сравнении строк. При сравнении

строк принимается во внимание символы и их регистр. Так, цифровой символ условно меньше, чем любой алфавитный символ. Алфавитный символ в верхнем регистре условно меньше, чем алфавитные символы в нижнем регистре. Например:
Слайд 84

Операции со строками Поэтому строка "1a" условно меньше, чем строка "aa".

Операции со строками

Поэтому строка "1a" условно меньше, чем строка "aa". Вначале

сравнение идет по первому символу. Если начальные символы обоих строк представляют цифры, то меньшей считается меньшая цифра, например, "1a" меньше, чем "2a".
Если начальные символы представляют алфавитные символы в одном и том же регистре, то смотрят по алфавиту. Так, "aa" меньше, чем "ba", а "ba" меньше, чем "ca".
Если первые символы одинаковые, в расчет берутся вторые символы при их наличии.
Зависимость от регистра не всегда желательна, так как по сути мы имеем дело с одинаковыми строками. В этом случае перед сравнением мы можем привести обе строки к одному из регистров.
Функция lower() приводит строку к нижнему регистру, а функция upper() - к верхнему.
Слайд 85

Условная конструкция if Условные конструкции используют условные выражения и в зависимости

Условная конструкция if

Условные конструкции используют условные выражения и в зависимости от

их значения направляют выполнение программы по одному из путей. Одна из таких конструкций - это конструкция if. Она имеет следующее формальное определение:
if логическое_выражение:
    инструкции
[elif логическое выражение:
    инструкции]
[else:
    инструкции]
Слайд 86

Условная конструкция if В самом простом виде после ключевого слова if

Условная конструкция if

В самом простом виде после ключевого слова if идет

логическое выражение. И если это логическое выражение возвращает True, то выполняется последующий блок инструкций, каждая из которых должна начинаться с новой стоки и должна иметь отступы от начала строки:
Слайд 87

Условная конструкция if Если вдруг нам надо определить альтернативное решение на

Условная конструкция if

Если вдруг нам надо определить альтернативное решение на тот

случай, если условное выражение возвратит False, то мы можем использовать блок else:
Слайд 88

Условная конструкция if Если необходимо ввести несколько альтернативных условий, то можно

Условная конструкция if

Если необходимо ввести несколько альтернативных условий, то можно использовать

дополнительные блоки elif, после которого идет блок инструкций.
Слайд 89

Условная конструкция if Вложенные конструкции if Конструкция if в свою очередь

Условная конструкция if

Вложенные конструкции if
Конструкция if в свою очередь сама может

иметь вложенные конструкции if:
Слайд 90

Условная конструкция if Стоит учитывать, что вложенные выражения if также должны

Условная конструкция if

Стоит учитывать, что вложенные выражения if также должны начинаться

с отступов, а инструкции во вложенных конструкциях также должны иметь отступы. Отступы, расставленные не должным образом, могут изменить логику программы. Так, предыдущий пример НЕ аналогичен следующему:
Слайд 91

Условная конструкция if Стоит учитывать, что вложенные выражения if также должны

Условная конструкция if

Стоит учитывать, что вложенные выражения if также должны начинаться

с отступов, а инструкции во вложенных конструкциях также должны иметь отступы. Отступы, расставленные не должным образом, могут изменить логику программы. Так, предыдущий пример НЕ аналогичен следующему:
Слайд 92

Циклы Циклы позволяют повторять некоторое действие в зависимости от соблюдения некоторого

Циклы

Циклы позволяют повторять некоторое действие в зависимости от соблюдения некоторого условия.
Цикл

while
Первый цикл, который мы рассмотрим, это цикл while. Он имеет следующее формальное определение:
while условное_выражение:
   инструкции
После ключевого слова while указывается условное выражение, и пока это выражение возвращает значение True, будет выполняться блок инструкций, который идет далее.
Все инструкции, которые относятся к циклу while, располагаются на последующих строках и должны иметь отступ от начала строки.
Слайд 93

Циклы

Циклы

Слайд 94

Циклы В данном случае цикл while будет продолжаться, пока переменная choice

Циклы

В данном случае цикл while будет продолжаться, пока переменная choice содержит

латинскую букву "Y" или "y".
Сам блок цикла состоит из двух инструкций. Сначала выводится сообщение "Привет", а потом вводится новое значение для переменной choice. И если пользователь нажмет какую-то другую клавишу, отличную от Y, произойдет выход из цикла, так как условие choice.lower() == "y" вернет значение False. Каждый такой проход цикла называется итерацией.
Также обратите внимание, что последняя инструкция print("Работа программы завешена") не имеет отступов от начала строки, поэтому она не входит в цикл while.
Слайд 95

Циклы Другой пример - вычисление факториала:

Циклы

Другой пример - вычисление факториала:

Слайд 96

Циклы Цикл for Другой тип циклов представляет конструкция for. Цикл for

Циклы

Цикл for
Другой тип циклов представляет конструкция for. Цикл for вызывается для каждого

числа в некоторой коллекции чисел. Коллекция чисел создается с помощью функции range(). Формальное определение цикла for:
for int_var in функция_range:
    инструкции
После ключевого слова for идет переменная int_var, которая хранит целые числа (название переменной может быть любое), затем ключевое слово in, вызов функции range() и двоеточие.
А со следующей строки располагается блок инструкций цикла, которые также должны иметь отступы от начала строки.
Слайд 97

Циклы При выполнении цикла Python последовательно получает все числа из коллекции,

Циклы

При выполнении цикла Python последовательно получает все числа из коллекции, которая

создается функцией range, и сохраняет эти числа в переменной int_var. При первом проходе цикл получает первое число из коллекции, при втором - второе число и так далее, пока не переберет все числа. Когда все числа в коллекции будут перебраны, цикл завершает свою работу.
Слайд 98

Циклы Рассмотрим на примере вычисления факториала:

Циклы

Рассмотрим на примере вычисления факториала:

Слайд 99

Циклы Вначале вводим с консоли число. В цикле определяем переменную i,

Циклы

Вначале вводим с консоли число. В цикле определяем переменную i, в

которую сохраняются числа из коллекции, создаваемой функцией range.
Функция range здесь принимает два аргумента - начальное число коллекции (здесь число 1) и число, до которого надо добавлять числа (то есть number +1).
Допустим, с консоли вводится число 6, то вызов функции range приобретает следующую форму:
range(1, 6+1)
Эта функция будет создавать коллекцию, которая будет начинаться с 1 и будет последовательно наполняться целыми числами вплоть до 7. То есть это будет коллекция [1, 2, 3, 4, 5, 6].
При выполнении цикла из этой коллекции последовательно будут передаваться числа в переменную i, а в самом цикле будет происходить умножение переменной i на переменную factorial. В итоге мы получим факториал числа.
Консольный вывод программы:
Слайд 100

Циклы Функция range Функция range имеет следующие формы: range(stop): возвращает все

Циклы

Функция range
Функция range имеет следующие формы:
range(stop): возвращает все целые числа от

0 до stop
range(start, stop): возвращает все целые числа в промежутке от start (включая) до stop (не включая). Выше в программе факториала использована именно эта форма.
range(start, stop, step): возвращает целые числа в промежутке от start (включая) до stop (не включая), которые увеличиваются на значение step
Слайд 101

Циклы Пример

Циклы

Пример

Слайд 102

Циклы Вложенные циклы Одни циклы внутри себя могут содержать другие циклы.

Циклы

Вложенные циклы
Одни циклы внутри себя могут содержать другие циклы. Рассмотрим на

примере вывода таблицы умножения.
Слайд 103

Циклы Внешний цикл for i in range(1, 10) срабатывает 9 раз,

Циклы

Внешний цикл for i in range(1, 10) срабатывает 9 раз, так как в

коллекции, возвращаемой функцией range, 9 чисел. Внутренний цикл for j in range(1, 10) срабатывает 9 раз для одной итерации внешнего цикла, и соответственно 81 раз для всех итераций внешнего цикла.
Слайд 104

Циклы Выход из цикла. break и continue Для управления циклом мы

Циклы

Выход из цикла. break и continue
Для управления циклом мы можем использовать

специальные операторы break и continue. Оператор break осуществляет выход из цикла. А оператор continue выполняет переход к следующей итерации цикла.
Оператор break может использоваться, если в цикле образуются условия, которые несовместимы с его дальнейшим выполнением. 
Слайд 105

Циклы Пример

Циклы

Пример

Слайд 106

Циклы Пример 2

Циклы

Пример 2

Слайд 107

Функции Функции представляют блок кода, который выполняет определенную задачу и который

Функции

Функции представляют блок кода, который выполняет определенную задачу и который можно

повторно использовать в других частях программы. Формальное определение функции:
def имя_функции ([параметры]):
    инструкции
Определение функции начинается с выражения def, которое состоит из имени функции, набора скобок с параметрами и двоеточия. Параметры в скобках необязательны. А со следующей строки идет блок инструкций, которые выполняет функция. Все инструкции функции имеют отступы от начала строки.
Слайд 108

Функции Пример

Функции

Пример

Слайд 109

Функции Значения по умолчанию Некоторые параметры функции мы можем сделать необязательными,

Функции

Значения по умолчанию
Некоторые параметры функции мы можем сделать необязательными, указав для

них значения по умолчанию при определении функции. Например:
Здесь параметр name является необязательным. И если мы не передаем при вызове функции для него значение, то применяется значение по умолчанию, то есть строка "Tom".
Слайд 110

Функции Именованные параметры При передаче значений функция сопоставляет их с параметрами

Функции

Именованные параметры
При передаче значений функция сопоставляет их с параметрами в том

порядке, в котором они передаются. Например, пусть есть следующая функция:
Слайд 111

Функции При вызове функции первое значение "Tom" передается первому параметру -

Функции

При вызове функции первое значение "Tom" передается первому параметру - параметру

name, второе значение - число 22 передается второму параметру - age. И так далее по порядку. Использование именованных параметров позволяет переопределить порядок передачи:
Слайд 112

Функции Неопределенное количество параметров С помощью символа звездочки можно определить неопределенное количество параметров:

Функции

Неопределенное количество параметров
С помощью символа звездочки можно определить неопределенное количество параметров:

Слайд 113

Функции В данном случае функция sum принимает один параметр - *params,

Функции

В данном случае функция sum принимает один параметр - *params, но звездочка

перед названием параметра указывает, что фактически на место этого параметра мы можем передать неопределенное количество значений или набор значений. В самой функции с помощью цикла for можно пройтись по этому набору и произвести с переданными значениями различные действия. Например, в данном случае возвращается сумма чисел.
Слайд 114

Функции Возвращение результата Функция может возвращать результат. Для этого в функции

Функции

Возвращение результата
Функция может возвращать результат. Для этого в функции используется оператор

return, после которого указывается возвращаемое значение:
Слайд 115

Функции В Python функция может возвращать сразу несколько значений: Здесь функция

Функции

В Python функция может возвращать сразу несколько значений:
Здесь функция create_default_user возвращает

два значения: name и age. При вызове функции эти значения по порядку присваиваются переменным user_name и user_age, и мы их можем использовать.
Слайд 116

Функции Функция main В программе может быть определено множество функций. И

Функции

Функция main
В программе может быть определено множество функций. И чтобы всех

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