Похожие презентации:
Программирование на языке 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 является сокращенной формой elseif.
Оно позволяет организовать логику в каскаде
операторов 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 = 1500if 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
Программирование