Программирование на языке Python
Поток управления
Поток управления
Алгоритмы разветвляющейся структуры
Условный оператор if…else
Условный оператор (блок-схема)
Условный оператор: неполная форма
Условный оператор
Знаки отношений
Вложенные условные операторы
Оператор if elif else (каскадное ветвление)
Оператор if elif else (каскадное ветвление)
Каскадное ветвление
Каскадное ветвление
Каскадное ветвление
Задачи
Задачи
Сложные условия
Задачи
Задачи
Задачи
Задачи
Задачи
Оператор выбора Match-Case
Оператор выбора Match-Case
Оператор выбора Match-Case
Оператор выбора Match-Case
Оператор выбора Match-Case
556.00K
Категория: ПрограммированиеПрограммирование

Программирование на языке Python. Лекция 2. Управляющие структуры. Условные операторы

1. Программирование на языке Python

Лекция 2. Управляющие структуры.
Условные операторы
Заманова С.К.

2. Поток управления

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

3. Поток управления

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

4. Алгоритмы разветвляющейся структуры

• Алгоритмы разветвленной структуры применяются,
когда в зависимости от некоторого условия необходимо
выполнить либо одно, либо другое действие.
• В блок-схемах разветвленные алгоритмы изображаются:
4

5. Условный оператор if…else

Оператор if-else в Python используется для выполнения
блока кода, если условие в операторе if истинно, и другого
блока кода, если условие ложно.
Синтаксис оператора if-else
if условие:
# блок кода, если условие истинно (true)
else:
# блок кода, если условие ложно (false)
Если логическое выражение имеет значение TRUE, то
оператор(ы) внутри блока if будут выполнены, в противном
случае будут выполнены операторы блока else.

6. Условный оператор (блок-схема)

Задача: изменить порядок действий в зависимости от
выполнения некоторого условия.
полная
форма
да
нет
ветвления
a > b?
M=a
M=b
вывод M
отступы
? Если a = b?
if a > b:
M = a
else:
M = b

7. Условный оператор: неполная форма

M=a
да
b > a?
нет
M = a
if b > a:
M = b
M=b
неполная
форма
ветвления
вывод M
Решение в стиле Python:
M = max(a, b)
M = a if a > b else b

8. Условный оператор

if a > b:
с = a
a = b
b = c
? Что делает?
b
a
4
6
2
? Можно ли обойтись
без переменной c?
Решение в стиле Python:
a, b = b, a
?
4
c
6
4

9. Знаки отношений

> <
больше, меньше
>=
больше или равно
<=
меньше или равно
==
равно
!=
не равно

10. Вложенные условные операторы

Задача: в переменных a и b записаны возрасты Андрея и
Бориса. Кто из них старше?
if a > b:
print("Андрей старше")
else:
if a == b:
print("Одного возраста")
else:
print("Борис старше")
вложенный
условный оператор

11. Оператор if elif else (каскадное ветвление)

Оператор if elif else позволяет проверять несколько
условий на предмет истинности и выполнять блок кода, как
только одно из условий становится истинным. Подобно
блоку else, блок elif также является необязательным.
Однако программа может содержать только один блок
else, тогда как за блоком if может следовать произвольное
количество блоков elif.
Синтаксис оператора if elif else
if условие1:
оператор
elif условие2:
оператор
elif условие3:
оператор
else:
оператор

12. Оператор if elif else (каскадное ветвление)

Ключевое слово elif является сокращенной формой else
if.
Оно позволяет организовать логику в каскаде
операторов elif после первого оператора if .
Если первый оператор if оценивается как false,
последующие операторы elif оцениваются один за другим и
выходят из каскада, если какой-либо из них
удовлетворяется.
Последним в каскаде является блок else , который
вступает в действие, когда все предыдущие условия if / elif
не выполняются.
Оператор elif делает код легким для чтения и понимания.

13. Каскадное ветвление

if a > b:
print("Андрей старше")
elif a == b:
print("Одного возраста")
else:
print("Борис старше")
! elif = else if
Оператор elif делает код легким для чтения и понимания.

14. Каскадное ветвление

Пример. Предположим, что на покупку предусмотрены
разные уровни скидок −
10% на сумму свыше 5000,
5%, если от 2000 до 5000,
2%, если от 1 до 2000,
скидка не взимается, если сумма <1000

15. Каскадное ветвление

cost = 1500
if cost < 1000:
print ( "Скидок нет." )
elif cost < 2000:
первое сработавшее
условие
print ( "Скидка 2%." )
elif cost < 5000:
print ( "Скидка 5%." )
else:
print ( "Скидка 10%." )
? Что выведет?

16. Задачи

«A»: Ввести три целых числа, найти максимальное из
них.
Пример:
Введите три целых числа:
1 5 4
Максимальное число 5
«B»: Ввести пять целых чисел, найти максимальное из
них.
Пример:
Введите пять целых чисел:
1 5 4 3 2
Максимальное число 5

17. Задачи

«C»: Ввести последовательно возраст Антона, Бориса и
Виктора. Определить, кто из них старше.
Пример:
Возраст Антона: 15
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Борис старше всех.
Пример:
Возраст Антона: 17
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Антон и Борис старше Виктора.

18. Сложные условия

Задача: набор сотрудников в возрасте 25-40 лет
(включительно). сложное условие
if v >= 25 and v <= 40 :
print(«подходит")
else:
print("не подходит")
and «И»
or «ИЛИ»
not «НЕ»
Приоритет :
1) отношения (<, >, <=, >=, ==, !=)
2)not («НЕ»)
3)and («И»)
4)or («ИЛИ»)

19. Задачи

«A»: Напишите программу, которая получает три числа и
выводит количество одинаковых чисел в этой
цепочке.
Пример:
Введите три числа:
5 5 5
Все числа одинаковые.
Пример:
Введите три числа:
5 7 5
Два числа одинаковые.
Пример:
Введите три числа:
5 7 8
Нет одинаковых чисел.

20. Задачи

«B»: Напишите программу, которая получает номер
месяца и выводит соответствующее ему время года
или сообщение об ошибке.
Пример:
Введите номер месяца:
5
Весна.
Пример:
Введите номер месяца:
15
Неверный номер месяца.

21. Задачи

«C»: Напишите программу, которая получает возраст
человека (целое число, не превышающее 120) и
выводит этот возраст со словом «год», «года» или
«лет». Например, «21 год», «22 года», «25 лет».
Пример:
Введите возраст: 18
Вам 18 лет.
Пример:
Введите возраст: 21
Вам 21 год.
Пример:
Введите возраст: 22
Вам 22 года.

22. Задачи

«A»: Напишите условие, которое определяет
заштрихованную область.
а)
а
б) б
y
) x2 y 2 4
y
)
в
y sin( x)
)
y 0,5
x
y x
x
x 2
«B»: Напишите условие, которое определяет
заштрихованную область.
а)
б)
y
в)
y x
y
y 1
y
x2 y 2 1
y x 1
x
y x2
0
y 2 x
x
x
x2 y 2 1

23. Задачи

«C»: Напишите условие, которое определяет
заштрихованную область.

24. Оператор выбора Match-Case

С выпуском Python 3.10 была введена техника сопоставления с образцом, называемая match-case, которая похожа
на конструкцию switch-case, доступную в C/C++/Java и т. д.
Ее основное применение — сравнение переменной с
одним или несколькими значениями. Она больше похожа на
сопоставление с образцом в таких языках, как Rust или
Haskell, чем на оператор switch в C или C++.
Оператор match-case принимает выражение и сравнивает
его значение с последовательными шаблонами, заданными
как один или несколько блоков case.
Выполняется только первый соответствующий шаблон.

25. Оператор выбора Match-Case

Синтаксис оператора match-case:
match имя_переменной:
case ‘значение 1' : оператор 1
case ‘значение 2' : оператор 2
...
case ‘значение n' : оператор n

26. Оператор выбора Match-Case

Пример 1, в котором используется оператор выбора:
n = input(“Введите букву”)
match n:
case 'a': print("Vowel alphabet")
case 'e': print("Vowel alphabet")
case 'i': print("Vowel alphabet")
case 'o': print("Vowel alphabet")
case 'u': print("Vowel alphabet")
case _: print("Simple alphabet")
? Что выведет?
Программа даст следующий результат:
n ='a'
n =‘m'
n =‘o'
Vowel alphabet
Simple alphabet
Vowel alphabet

27. Оператор выбора Match-Case

Пример 2. Программа по номеру дня недели и распечатает
соответствующее название дня.
n = int (input(“Введите день недели”))
match n:
case 1: print("Monday" )
case 2: print("Tuesday")
case 3: print("Wednesday")
case 4: r print("Thursday")
case 5: print("Friday")
case 6: print("Saturday")
case 7: r print("Sunday")
case _: print("Invalid day number")
Программа даст следующий результат:
n =3
Wednesday
n=6
Saturday
n=8
Invalid day number

28. Оператор выбора Match-Case

Иногда может возникнуть ситуация, когда для нескольких
случаев необходимо выполнить одно и то же действие. Для
этого можно объединить случаи с помощью оператора OR,
представленного символом "|".
Пример 3. Программа по номеру месяца распечатает
соответствующее времен года
n = int (input(“Введите номер месяца”))
match n:
case 12 | 1 | 2: print(“Winter" )
case 3 | 4 | 5 : print(“Spring")
case 6 | 7 | 8 : print(“Summer")
case 9 | 10 | 11 : print(«Autumn")
case _: print("no such month")
Программа даст следующий результат:
n =2
Winter
n=8
Summer
English     Русский Правила