5. Python-3 Управляющие конструкции

Содержание

Слайд 2

РЕЗУЛЬТАТ ВЫПОЛНЕНИЯ ПОСЛЕДНЕЙ ИНСТРУКЦИИ

Результат выполнения последней инструкции сохраняется в переменной _ (одно

РЕЗУЛЬТАТ ВЫПОЛНЕНИЯ ПОСЛЕДНЕЙ ИНСТРУКЦИИ Результат выполнения последней инструкции сохраняется в переменной _
подчеркивание), что позволяет производить дальнейшие вычисления

Слайд 3

ОБОЗНАЧЕНИЕ СРАВНЕНИЯ

На естественном языке (например, русском) мы обозначаем сравнение словами "равно", "больше",

ОБОЗНАЧЕНИЕ СРАВНЕНИЯ На естественном языке (например, русском) мы обозначаем сравнение словами "равно",
"меньше" и им подобными

Слайд 4

ЛОГИЧЕСКИЕ ОПЕРАТОРЫ

В языках программирования используются специальные знаки, подобные тем, которые используются в

ЛОГИЧЕСКИЕ ОПЕРАТОРЫ В языках программирования используются специальные знаки, подобные тем, которые используются
математике:
> (больше),
< (меньше),
>= (больше или равно),
<= (меньше или равно),
== (равно),
!= (не равно)

Слайд 5

ЛОГИЧЕСКИЙ ТИП ДАННЫХ

Логический тип данных может принимать значения "истина" (True) или "ложь"

ЛОГИЧЕСКИЙ ТИП ДАННЫХ Логический тип данных может принимать значения "истина" (True) или
(False).
Простое логическое выражение имеет вид <арифметическое выражение> <знак сравнения> <арифметическое выражение>

Слайд 6

УСЛОВНЫЕ ОПЕРАТОРЫ

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

УСЛОВНЫЕ ОПЕРАТОРЫ Условные операторы позволяют в зависимости от значения логического выражения выполнить
участок программы или, наоборот, не выполнить его.
Логические выражения возвращают только два значения: True (истина) или False (ложь), которые ведут себя как целые числа 1 и 0 соответственно.

Слайд 7

X < Y < Z

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

X В Питоне допустимы и логические выражения, содержащие несколько знаков сравнения, например
знаков сравнения, например x < y < z. При этом все сравнения обладают одинаковым приоритетом, который меньше, чем у любой арифметической операции.
Результат вычисления логического выражения можно сохранять в переменную, которая будет иметь тип bool. Переменные такого типа, как и числа и строки, являются неизменяемыми объектами.
Строки также могут сравниваться между собой. При этом сравнение происходит в лексикографическом порядке (как упорядочены слова в словаре).

Слайд 8

ОПЕРАТОРЫ ТОЖДЕСТВЕННОСТИ В PYTHON

ОПЕРАТОРЫ ТОЖДЕСТВЕННОСТИ В PYTHON

Слайд 9

ОПЕРАТОРЫ ТОЖДЕСТВЕННОСТИ

is - проверяет, ссылаются ли две переменные на один и тот же

ОПЕРАТОРЫ ТОЖДЕСТВЕННОСТИ is - проверяет, ссылаются ли две переменные на один и
объект. Если переменные ссылаются на один и тот же объект, то оператор is возвращает значение True:
is not - проверяет, ссылаются ли две переменные на разные объекты. Если это так, возвращается значение True:

Слайд 10

X = 2337

Создаётся PyObject.
Числу для PyObject’а присваивается typecode.
2337 присваивается значение для PyObject’а.
Создаётся

X = 2337 Создаётся PyObject. Числу для PyObject’а присваивается typecode. 2337 присваивается
имя x.
x указывает на новый PyObject.
Счётчик ссылок PyObject’а увеличивается на 1.

Python-имя x не владеет напрямую каким-либо адресом в памяти

Слайд 11

X = 2337

Создаётся новый PyObject.
Числу для PyObject’а присваивается typecode.
2337 присваивается значение для

X = 2337 Создаётся новый PyObject. Числу для PyObject’а присваивается typecode. 2337
PyObject’а.
Создаётся имя x
x указывает на новый PyObject.
Счётчик ссылок нового PyObject увеличивается на 1.

команда x = 2338 является не присваиванием, а, скорее, привязкой (binding) имени x к ссылке

Слайд 12

Y = X Y IS X TRUE

В памяти появится новое имя, но

Y = X Y IS X TRUE В памяти появится новое имя,
не обязательно новый объект
Новый Python-объект не создан, создано только новое имя, которое указывает на тот же объект. Кроме того, счётчик ссылок объекта увеличился на 1

Слайд 13

ОПЕРАТОРЫ ПРИНАДЛЕЖНОСТИ В PYTHON

ОПЕРАТОРЫ ПРИНАДЛЕЖНОСТИ В PYTHON

Слайд 14

ПРИМЕР

ПРИМЕР

Слайд 15

NUMBER % 2 == 0

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

NUMBER % 2 == 0 Одним из примеров использования логического выражения является
на делимость. Например, чтобы проверить, является ли число четным, необходимо сравнить остаток от деления этого числа на два с нулём:

Слайд 16

ОПРЕДЕЛИТЕ, ЯВЛЯЕТСЯ ЛИ ВЫРАЖЕНИЕ ЛОГИЧЕСКИМ

x = 12 – 5
x == 4
x

ОПРЕДЕЛИТЕ, ЯВЛЯЕТСЯ ЛИ ВЫРАЖЕНИЕ ЛОГИЧЕСКИМ x = 12 – 5 x ==
== 7
x != 7
x != 4
x > 5
x < 5
x <= 6
x >= 6

Слайд 17

СЛОЖНЫЕ ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ

Часто требуется получить логический тип ответа ("Да" или "Нет") в

СЛОЖНЫЕ ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ Часто требуется получить логический тип ответа ("Да" или "Нет")
зависимости от результата выполнения двух простых выражений, например, переменная больше 12 и меньше 35.

Слайд 18

ЛОГИЧЕСКИЕ ОПЕРАТОРЫ В PYTHON

ЛОГИЧЕСКИЕ ОПЕРАТОРЫ В PYTHON

Слайд 19

СВЯЗКИ "И", "ИЛИ" И "НЕ"

Все логические операции имеют приоритет ниже, чем операции

СВЯЗКИ "И", "ИЛИ" И "НЕ" Все логические операции имеют приоритет ниже, чем
сравнения (а значит, и ниже чем арифметические операции).
Среди логических операций наивысший приоритет имеет операция not, затем идет and и наименьший приоритет имеет операция or.
На порядок выполнения операций можно влиять с помощью скобок, как и в арифметических выражениях.

Слайд 20

ОПЕРАТОРЫ СРАВНЕНИЯ

Операторы сравнения в порядке убывания приоритета:
<, >, <=, >=, ==, !=,

ОПЕРАТОРЫ СРАВНЕНИЯ Операторы сравнения в порядке убывания приоритета: , =, ==, !=,
is, is not, in, not in.
not (логическое отрицание).
and (логическое И).
or (логическое ИЛИ).

Слайд 21

ЯВЛЯЮТСЯ ЛИ ПРИВЕДЕННЫЙ ПРИМЕРЫ СЛОЖНЫМИ ЛОГИЧЕСКИМИ ВЫРАЖЕНИЯМИ

x = 8
y = 13
x ==

ЯВЛЯЮТСЯ ЛИ ПРИВЕДЕННЫЙ ПРИМЕРЫ СЛОЖНЫМИ ЛОГИЧЕСКИМИ ВЫРАЖЕНИЯМИ x = 8 y =
8 and y < 15
x > 8 and y < 15
x != 0 or y >15

Слайд 22

ЗАДАНИЕ

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

ЗАДАНИЕ Присвойте двум переменных числовые значения. Составьте с помощью этих переменных два
выражения с применением оператора and, которые должны выдавать разные результаты (true и false)
Составьте с помощью этих переменных четыре сложных выражения с применением оператора or, которые должны выдавать разные результаты (true и false)

Слайд 23

ОПЕРАТОР ВЕТВЛЕНИЯ IF...ELSE

Оператор ветвления if...else позволяет в зависимости от значения логического выражения выполнить отдельный

ОПЕРАТОР ВЕТВЛЕНИЯ IF...ELSE Оператор ветвления if...else позволяет в зависимости от значения логического
участок программы или, наоборот, не выполнить его. Оператор имеет следующий формат:

Слайд 24

ПРИМЕР

ПРИМЕР

Слайд 25

УСЛОВНЫЙ ОПЕРАТОР

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

УСЛОВНЫЙ ОПЕРАТОР Условный оператор позволяет выполнять действия в зависимости от того, выполнено
или нет.
Записывается условный оператор как
''if <логическое выражение>:‘’,
далее следует блок команд, который будет выполнен только если логическое выражение приняло значение True.
Блок команд, который будет выполняться, выделяется отступами в 4 пробела (в IDE можно нажимать клавишу tab).

Слайд 26

УСЛОВНЫЙ ОПЕРАТОР

При выполнении программного кода некоторые его участки могут быть пропущены
Если часть

УСЛОВНЫЙ ОПЕРАТОР При выполнении программного кода некоторые его участки могут быть пропущены
кода должна выполняться лишь при определенном значении конкретной переменной, то используется следующая конструкция:

Слайд 27

Логическое значение можно хранить в переменной или сравнивать со значением True и

Логическое значение можно хранить в переменной или сравнивать со значением True и
False.
Значение True возвращают объекты – число, не равное 0, например, bool(12), непустой объект, например, bool(“0”).
Значение False возвращают объекты bool(‘’), bool([]), bool(()), None.

Слайд 28

УСЛОВНЫЕ ОПЕРАТОРЫ

Логическое значение можно сохранить в переменной:
Значение True возвращает следующие объекты:
любое число, не равное

УСЛОВНЫЕ ОПЕРАТОРЫ Логическое значение можно сохранить в переменной: Значение True возвращает следующие
нулю:
не пустой объект:

Слайд 29

УСЛОВНЫЕ ОПЕРАТОРЫ

Следующие объекты интерпретируются как False:
число, равное нулю:
пустой объект:
значение None:

УСЛОВНЫЕ ОПЕРАТОРЫ Следующие объекты интерпретируются как False: число, равное нулю: пустой объект: значение None:

Слайд 30

ОПЕРАТОР ELSE: (ИНАЧЕ)

Все команды, которые выполняются в блоке else, должны быть также

ОПЕРАТОР ELSE: (ИНАЧЕ) Все команды, которые выполняются в блоке else, должны быть
записаны с отступом.
Else должен следовать сразу за блоком команд if, без промежуточных команд, выполняемых безусловно.
Else без соответствующего if'а не имеет смысла.

Слайд 31

ВЕТВЛЕНИЕ. УСЛОВНЫЙ ОПЕРАТОР

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

ВЕТВЛЕНИЕ. УСЛОВНЫЙ ОПЕРАТОР Структуру программы можно изобразить следующим образом:

Слайд 32

ПРИВЕСТИ ПРИМЕР

ПРИВЕСТИ ПРИМЕР

Слайд 33

ПРИВЕДИТЕ ПРИМЕР

ПРИВЕДИТЕ ПРИМЕР

Слайд 34

ОПЕРАТОР ВЕТВЛЕНИЯ IF..ELIF..ELSE

ОПЕРАТОР ВЕТВЛЕНИЯ IF..ELIF..ELSE

Слайд 35

ЗАДАНИЕ

Присвойте двум переменным a и b два числовых значения
Выведите на экран значение

ЗАДАНИЕ Присвойте двум переменным a и b два числовых значения Выведите на
True или False в зависимости от того, больше ли первое число второго или нет

Слайд 36

Если после if записано не логическое выражение, то оно будет приведено к

Если после if записано не логическое выражение, то оно будет приведено к
логическому, как если бы от него была вызвана функция bool
Однако, злоупотреблять этим не следует, т.к. это ухудшает читаемость кода

Слайд 37

ВЛОЖЕННЫЙ УСЛОВНЫЙ ОПЕРАТОР

Внутри блока команд могут находиться другие условные операторы. 
Если вложенных условных

ВЛОЖЕННЫЙ УСЛОВНЫЙ ОПЕРАТОР Внутри блока команд могут находиться другие условные операторы. Если
операторов несколько, то, к какому из них относится else, можно понять по отступу. Отступ у else должен быть такой же, как у if, к которому он относится.

Слайд 38

КОНСТРУКЦИЯ ''ИНАЧЕ-ЕСЛИ‘’ ELIF

В некоторых ситуациях необходимо осуществить выбор больше чем из двух

КОНСТРУКЦИЯ ''ИНАЧЕ-ЕСЛИ‘’ ELIF В некоторых ситуациях необходимо осуществить выбор больше чем из
вариантов, которые могут быть обработаны с помощью if-else. 

Конструкций elif может быть несколько, условия проверяются последовательно. Как только условие выполнено, запускается соответствующий этому условию блок команд и дальнейшая проверка не выполняется. Блок else является необязательным, как и в обычном if.

Слайд 39

МНОЖЕСТВЕННОЕ ВЕТВЛЕНИЕ: IF-ELIF-ELSE

old = int(input('Ваш возраст: '))
print('Рекомендовано:', end=' ')
if 3 <= old

МНОЖЕСТВЕННОЕ ВЕТВЛЕНИЕ: IF-ELIF-ELSE old = int(input('Ваш возраст: ')) print('Рекомендовано:', end=' ') if
< 6:
print('"Заяц в лабиринте"')
elif 6 <= old < 12:
print('"Марсианин"')
elif 12 <= old < 16:
print('"Загадочный остров"')
elif 16 <= old:
print('"Поток сознания"')

Слайд 40

ЗАДАНИЕ

Напишите программный код, в котором в случае, если значение некой переменной больше

ЗАДАНИЕ Напишите программный код, в котором в случае, если значение некой переменной
0, выводилось бы специальное сообщение.
С помощью ветки else добавьте код таким образом, чтобы в зависимости от значения переменной, выводилась либо 1, либо -1.

Слайд 41

ЦИКЛ FOR

Цикл for в языке программирования Python предназначен для перебора элементов структур

ЦИКЛ FOR Цикл for в языке программирования Python предназначен для перебора элементов
данных и некоторых других объектов.
В цикле for указывается переменная и множество значений, по которому будет пробегать переменная.
Множество значений может быть задано списком, кортежем, строкой или диапазоном.

Слайд 42

ФУНКЦИЯ RANGE()

Для повторения цикла некоторое заданное число раз n можно использовать цикл

ФУНКЦИЯ RANGE() Для повторения цикла некоторое заданное число раз n можно использовать
for вместе с функцией range:
for i in range(n):
тело цикла
В качестве n может использоваться числовая константа, переменная или произвольное арифметическое выражение (например, 2 ** 10). Если значение n равно нулю или отрицательное, то тело цикла не выполнится ни разу

Слайд 43

ФУНКЦИЯ RANGE(A,B)

Если задать цикл таким образом:
for i in range(a, b):
тело цикла
То индексная

ФУНКЦИЯ RANGE(A,B) Если задать цикл таким образом: for i in range(a, b):
переменная i будет принимать значения от a до b – 1, то есть первый параметр функции range, вызываемой с двумя параметрами:
Первый параметр задает начальное значение индексной переменной
Второй параметр — значение, которая индексная переменная принимать не будет
Если a≥b, то цикл не будет выполнен ни разу

Слайд 44

ПРИМЕР

sum = 0
for i in range(1, n + 1):
sum += i

ПРИМЕР sum = 0 for i in range(1, n + 1): sum += i

Слайд 45

ФУНКЦИЯ RANGE(A,B,H)

Чтобы организовать цикл, в котором индексная переменная будет уменьшаться, необходимо использовать

ФУНКЦИЯ RANGE(A,B,H) Чтобы организовать цикл, в котором индексная переменная будет уменьшаться, необходимо
функцию range с тремя параметрами.
Первый параметр задает начальное значение индексной переменной
Второй параметр — значение, до которого будет изменяться индексная переменная (не включая его!)
Третий параметр — величину изменения индексной переменной
Цикл по всем нечетным числам от 1 до 99 можно при помощи функции range(1, 100, 2)
Цикл по всем числам от 100 до 1 можно при помощи range(100, 0,-1).

Слайд 46

FOR I IN RANGE(A, B, D)

Цикл for i in range(a, b, d)

FOR I IN RANGE(A, B, D) Цикл for i in range(a, b,

при d > 0 задает значения индексной переменной i = a, i = a + d, i = a + 2 * d и так для всех значений, для которых i < b.
при d < 0 переменная цикла принимает все значения i > b.

Слайд 47

ФУНКЦИЯ RANGE()

Range" переводится как "диапазон". Она может принимать один, два или три

ФУНКЦИЯ RANGE() Range" переводится как "диапазон". Она может принимать один, два или
аргумента.
Если задан только один, то генерируются числа от 0 до указанного числа, не включая его.
Если заданы два, то числа генерируются от первого до второго, не включая его. Если заданы три, то третье число – это шаг.

Слайд 48

ЗАДАНИЕ

Дано натуральное число. Требуется определить, является ли год с данным номером високосным.

ЗАДАНИЕ Дано натуральное число. Требуется определить, является ли год с данным номером
Если год является високосным, то выведите YES, иначе выведите NO.
В соответствии с григорианским календарем, год является високосным, если его номер кратен 4, но не кратен 100, а также если он кратен 400

Слайд 49

ЦИКЛЫ

Циклы — это инструкции, выполняющие одну и ту же последовательность действий многократно
Ходьба

ЦИКЛЫ Циклы — это инструкции, выполняющие одну и ту же последовательность действий
человека — вполне циклическое явление: шаг левой, шаг правой, снова левой-правой и т. д., пока не будет достигнута определенная цель

Слайд 50

ЦИКЛЫ

Цикл for используется, когда известно количество повторений цикла или известен набор значений,

ЦИКЛЫ Цикл for используется, когда известно количество повторений цикла или известен набор
для которых должно повторяться действие
Однако данная информация не всегда известна

Слайд 51

ЦИКЛ WHILE

ЦИКЛ WHILE

Слайд 53

ЦИКЛ WHILE - ЦИКЛ С УСЛОВИЕМ

 Выполнение инструкций в цикле while продолжается до тех пор,

ЦИКЛ WHILE - ЦИКЛ С УСЛОВИЕМ Выполнение инструкций в цикле while продолжается
пока логическое выражение истинно. Цикл while имеет следующий формат:

Слайд 54

ПРИМЕР

В багажник автомобиля грузят овощи и фрукты с дачи: картофель, капусту, морковь,

ПРИМЕР В багажник автомобиля грузят овощи и фрукты с дачи: картофель, капусту,
яблоки, груши и др. Объем багажника равен 350л. Продукты кладут последовательно, объём каждого груза известен в литрах. Нужно сказать в какой момент (назвать номер груза) багажник переполнится

Слайд 55

ПРИМЕР

ПРИМЕР

Слайд 56

ФАКТОРИАЛ ЧИСЛА

n = int ( input()) i =2 p =1 while i <= n:
p =

ФАКТОРИАЛ ЧИСЛА n = int ( input()) i =2 p =1 while
p * I i = i +1 print (p)

Слайд 57

ПРИМЕР ИСПОЛЬЗОВАНИЯ ЦИКЛА

Задача Фибоначчи – ряд Фибоначчи – это числовой ряд, каждое

ПРИМЕР ИСПОЛЬЗОВАНИЯ ЦИКЛА Задача Фибоначчи – ряд Фибоначчи – это числовой ряд,
следующее значение равно сумме двух предыдущих
Попробуйте написать программу

Слайд 58

ЦИКЛ ОБХОДА ПОСЛЕДОВАТЕЛЬНОСТИ (FOR)

Цикл while не единственный способ организации повторения группы выражений
Широко

ЦИКЛ ОБХОДА ПОСЛЕДОВАТЕЛЬНОСТИ (FOR) Цикл while не единственный способ организации повторения группы
применяется цикл for, который представляет собой цикл обхода заданного множества элементов (символов строки, объектов списка или словаря) и выполнения в своем теле различных операций над ними

Слайд 59

ЦИКЛ FOR

ЦИКЛ FOR

Слайд 60

ЦИКЛ FOR

Цикл for применяется для перебора элементов последовательности и имеет такой формат:

ЦИКЛ FOR Цикл for применяется для перебора элементов последовательности и имеет такой формат:

Слайд 61

ОПЕРАТОР CONTINUE

ОПЕРАТОР CONTINUE

Слайд 62

ОПЕРАТОР BREAK ДОСРОЧНОЕ ЗАВЕРШЕНИЕ ЦИКЛА

ОПЕРАТОР BREAK ДОСРОЧНОЕ ЗАВЕРШЕНИЕ ЦИКЛА

Слайд 63

ЦИКЛ FOR

Функция range() имеет следующий формат:

ЦИКЛ FOR Функция range() имеет следующий формат:

Слайд 64

ЦИКЛ FOR

ЦИКЛ FOR

Слайд 65

В языке программирования Python цикл for имеет зачастую несколько иное применение
Список в

В языке программирования Python цикл for имеет зачастую несколько иное применение Список
Python относится к итерируемым объектам, это значит, что его элементы можно обойти циклом for, причём переменная-счётчик будет на каждом шаге принимать значение очередного элемента цикла:
lst = [12 , 17.9 , True , -8, False ]
for j in lst :
print (j )

Слайд 66

НАПИШЕМ ПРОГРАММУ

Накопление суммы и произведения 1!+2!+3!+…+n!

НАПИШЕМ ПРОГРАММУ Накопление суммы и произведения 1!+2!+3!+…+n!

Слайд 67

С ПОМОЩЬЮ ЦИКЛА FOR МОЖНО ПЕРЕБИРАТЬ СТРОКИ

str1 = "Привет"
for i in str1

С ПОМОЩЬЮ ЦИКЛА FOR МОЖНО ПЕРЕБИРАТЬ СТРОКИ str1 = "Привет" for i
:
print (i, end = " ")

Слайд 68

ЗАДАНИЕ

Создайте цикл, который печатает четные числа до тех пор, пока не выведет

ЗАДАНИЕ Создайте цикл, который печатает четные числа до тех пор, пока не
ваш возраст. Если ваш возраст — нечетное число, создайте цикл, который печатает нечетные числа до совпадения с возрастом