Похожие презентации:
Условные конструкции
1. Условные конструкции
2. Условия
●При составлении логических выражений могут использоваться операторы сравнения.• > - больше
• < - меньше
• == - равно
• != - не равно
• >= - больше или равно
• <= - меньше или равно
Логический тип данных — это тип для программирования предложений, которые
могут быть истинными или ложными.
Простые логические выражения можно создать
● с помощью операторов сравнения.
3. Условия
# Составное логическое выражениеprint(15 > 7) # True
можно создать из простых,
связав их с помощью логических
print(“прив” == “hello”) # False
операторов
# or – Логическое И - Потребовать
print(10 == 10.0) # True
выполнения двух простых условий
одновременно
# and – Логическое ИЛИ Потребовать выполнения хотя бы
одного из двух простых условий
4. Условия
user = input(“Enter username:”)temp = int(input(“Введите
ok = user == “admin”
температуру: “))
print(“SU:”, ok)
# 25
ok = temp > 15
# input: admin
print(“На улице тепло:”, ok)
# output: SU: True
# True
5. Условия
Условный оператор - это команда, выполняющая или не выполняющая действие
в зависимости от значения логического выражения.
●Для программирования условного оператора используются команды:
○if (в англ. — «если»);
○else (в англ. — «иначе»).
● if Условие:
Блок инструкций 1
● else:
Блок инструкций 2
●Блок инструкций 1 будет выполнен, если Условие истинно. Если Условие ложно, будет
выполнен Блок инструкций 2.
6. Условия
user = input(“Enter username:”)temp = int(input(“Введите
температуру: “))
# 25
if temp > 15:
print(“На улице тепло”)
else:
print(“На улице холодно”)
# На улице тепло
if user == “admin”:
print(“Welcome SuperUser”)
else:
print(“Welcome user”)
# input: admin
# output: Welcome user
7. Условия
Вложенность работает и для условного оператора. В некоторых случаях это
сильно упрощает программу и делает её более читаемой.
Новых правил оформления нет. Нужно очень внимательно придерживаться уже
известных.
Вложенные блоки имеют больший размер отступа (например, 8 пробелов).
●if a > b:
● if a > c:
print(a)
● else:
print(c)
●else:
● if b > c:
...
8. Каскадные условные инструкции
Пример программы, определяющий четверть координатной плоскости, можно
переписать используя “каскадную“ последовательность операцией if... elif...
else:
●x = int(input())
●y = int(input())
●if x > 0 and y > 0:
● print("Первая четверть")
●elif x > 0 and y < 0:
● print("Четвертая четверть")
●elif y > 0:
● print("Вторая четверть")
●else:
● print("Третья четверть")
9. Каскадные условные инструкции
●В такой конструкции условия if, ..., elif проверяются по очереди, выполняетсяблок, соответствующий первому из истинных условий. Если все проверяемые условия
ложны, то выполняется блок else, если он присутствует.
●Способов запрограммировать условную конструкцию много:
• условный оператор;
• вложенный условный оператор;
• условный оператор с несколькими ветвями.
●Любую задачу можно решить через «стандартный» условный оператор. Но:
• вложенность позволяет сократить проверку условий;
• несколько ветвей упрощают проверку оставшихся условий.
10. Практика
Задача 1.Даны три целых числа. Определите, сколько среди них совпадающих. Программа должна
вывести одно из чисел: 3 (если все совпадают), 2 (если два совпадает) или 0 (если все
числа
Задача 2.
Шахматная ладья ходит по горизонтали или вертикали. Даны две различные клетки
шахматной доски, определите, может ли ладья попасть с первой клетки на вторую одним
ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер
столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа
должна вывести YES, если из первой клетки ходом ладьи можно попасть во вторую или NO
в противном случае.
11. Практика
Задача 3.Шоколадка имеет вид прямоугольника, разделенного на n×m долек. Шоколадку можно один
раз разломить по прямой на две части. Определите, можно ли таким образом отломить от
шоколадки часть, состоящую ровно из k долек. Программа получает на вход три числа: n, m,
k и должна вывести YES или NO.
Задача 4.
В математике функция sign(x) (знак числа) определена так:
sign(x) = 1, если x > 0,
sign(x) = -1, если x < 0,
sign(x) = 0, если x = 0.
Для данного числа x выведите значение sign(x). Эту задачу желательно решить с
использованием каскадных инструкций if... elif... else.
12. Сложные типы переменных
print(“Урок 2”)13. Список (List)
14. Список
Список — это ещё один тип данных Python. Ониспользуется для хранения упорядоченных наборов
данных.
● Для работы со списками важно уметь:
● Создавать список.
● Управлять содержимым списка
● (получать значения, добавлять элементы и др.).
15. Примеры
# создание пустого спискаstudents = list()
# добавление нового элемента
students.append(“Sidorov Igor”)
# вывод элемента на экран
print(students[0])
16. Новые команды
# создание списка с элементамиitems = [‘bread’, ‘salt’, ‘eggs’]
# поиск элемента в списке
‘salt’ in items
# True
# определение длины списка
len(items)
17. Немного подробностей
Для списков целиком определеныa = [1, 2, 3]
следующие
операции:
b = [4, 5]
конкатенация списков (сложение
c = a + b
списков, т. е. приписывание к
# [1, 2, 3, 4, 5]
одному
списку
повторение
другого)
списков
списка на число).
и
(умножение
d = b * 3
# [4, 5, 4, 5, 4, 5]
18. Кортеж (tuple)
Кортеж — это неизменяемый аналог списка. Он защищает хранимые данные отнепреднамеренных изменений.
19. Кортеж
Кортеж похож на список, но вы создаете его с круглыми скобками, вместо квадратных.Вы также можете использовать встроенный инструмент для создания кортежей.
Разница в том, что кортеж неизменный, в то время как список может меняться
# объявление пустого кортежа
days = tuple()
# объявление кортежа c элементами
days = (‘пн’, ‘вт’, ‘ср’, ‘чт’, ‘пт’, ‘сб’, ‘вс’)
20. Кортеж
books = ("1984", "О дивный новый мир", "451 градус по Фаренгейту")print(books[2])
# 451 градус по Фаренгейту
print("1984" in books)
# True
print("Незнайка на луне" in books)
# False
21. Множество Set
Множества - это неупорядоченные коллекции объектов не содержащиедубликатов.
22. Множество
Множество (set) — это изменяемый набор уникальных и неупорядоченныхэлементов. Представьте, что вы пришли на пляж и собрали в пакет коллекцию
ракушек — каждая ракушка отличается от другой и не имеет чётко
обозначенного места в пакете. Такую коллекцию можно совершенно легитимно
назвать множеством :) Перечислим основные свойства множеств:
Уникальность: каждый элемент множества неповторим. Если попробовать создать
в наборе дубликат, Python не даст этого сделать.
Неупорядоченность: у элементов множества нет порядкового номера.
Изменяемость: можно добавлять во множество или удалять из него элементы.
23. Множество
Так как множества неупорядоченны, вы не сможете получить элемент поиндексу, как в случае с кортежами и списками. Зато можно очень быстро
проверить наличие элемента в коллекции: когда «ракушки» не пронумерованы,
компьютеру не нужно рассматривать каждую по отдельности — можно посмотреть
сразу всю коллекцию.
А ещё set используют, когда нужно очистить данные от дубликатов. Например,
если вы спарсили с сайта список повторяющихся номеров телефонов, можно
превратить его во множество — после этого все копии исчезнут.
24. Множество
Множества могут содержать только неизменяемые объекты:целые числа (integer);
числа с плавающей точкой (float);
строки (string);
кортежи (tuple).
Дело в том, что данные хранятся во множестве не в первозданном виде, а в
виде хеша — то есть уникального битового массива. Так компьютеру проще
искать элементы в коллекции. Однако, чтобы этот процесс работал, каждый
элемент должен всегда выдавать одно и то же значение.
25. Множество
# создание пустого множестваprices = set()
# создание множества с элементами
names = {‘Vika’, ‘Sveta’, ‘Lera’}
# создание множества из списка
my_set = set([1, 2, 3, 4, 4, 5, 5])
# {1, 2, 3, 4, 5}
26. Множество
s = {1, 2, 3}# метод add() добавляет во множество один объект
s.add(4)
# Метод update() позволяет добавить сразу несколько элементов. Аргументом
может быть список, строка или другой итерируемый объект.
s.update([4, 5, 6])
27. Множество
# множества в Python можно объединять друг с другом — для этого используютметод union(). Если в двух наборах есть повторяющиеся объекты, в их
«гибриде» останется только один.
set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = set1.union(set2)
print(set3) # {1, 2, 3, 4, 5}
28. Множество
s = {1, 2, 3, 4, 5}# метод remove() удаляет элемент из множества. Если такого элемента в
наборе не окажется, интерпретатор выдаст исключение.
s.remove(3)
# метод discard() работает безопаснее — если элемент не найден, исключения
не выпадет.
s.discard(3)
29. Множество
s = {1, 2, 3, 4, 5}# метод pop() удаляет случайный компонент множества.
print(s.pop())
# eсли же вы хотите полностью очистить множество, используйте метод
clear().
s.clear()
30. Множество
Операции над математическими множествамиТип данных set поддерживает операции с математическими множествами:
объединение, пересечение, разность и симметрическую разность.
# чтобы удалить из исходного множества несовпадающие элементы, используют
метод intersection_update()
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
set1.intersection_update(set2) # {3, 4}
31. Множество
Разность — это набор элементов, которые принадлежат первому множеству, ноне принадлежат второму. Другими словами, её можно представить как результат
вычитания второго множества из первого.
# чтобы получить разность, используется метод difference()
set1 = {"apple", "banana", "cherry"}
set2 = {"banana", "orange", "mango"}
set3 = set1.difference(set2)
print(set3) # {'cherry', 'apple'}
32. Множество
# чтобы удалить из множества совпадающие элементы, используйте методdifference_update()
set1 = {"apple", "banana", "cherry"}
set2 = {"banana", "orange", "mango"}
set1.difference_update(set2)
print(set1) # {'apple', 'cherry'}
33. Множество
Симметрическая разность — это набор элементов, которые принадлежат либопервому, либо второму множеству, но не их пересечению. Иными словами,
симметрическая разность содержит все элементы обоих множеств, кроме общих.
В Python симметрическую разность можно найти с помощью метода
symmetric_difference()
a = {"apple", "banana", "cherry"}
b = {"banana", "orange", "mango"}
c = a.symmetric_difference(b)
print(c) # {'apple', 'cherry','orange','mango'}
34. Множество
Как проверить принадлежность элемента множествуДля этого в Python используется оператор in. Он возвращает True, если
элемент присутствует в коллекции, и False, если отсутствует.
Также можно использовать оператор not in, чтобы убедиться, что объект не
принадлежит множеству.
my_set = {1, 2, 3, 4, 5}
print(4 in my_set)
# вывод: True, потому что 4 есть в множестве
print(6 in my_set)
# вывод: False, потому что 6 нет в множестве
35. Словарь Dict
Словарь — неупорядоченная структура данных, которая позволяет хранитьпары «ключ — значение».
36. Словарь
# ключи в словарях уникальны, а значения могут повторяться. Условно говоря,дизайнеру Валере может принадлежать сколько угодно номеров — но у каждого
номера может быть только один владелец.
# словари в Python оформляются фигурными скобками. Внутри них находятся
пары «ключ — значение». Первым пишется ключ, а затем, через двоеточие, —
значение. Сами пары отделяются друг от друга запятыми.
books = {
'Гарри Поттер и философский камень' : 'Джоан Роулинг',
'Убить пересмешника' : 'Харпер Ли'
}
37. Словарь
# если нам известен ключ, можно быстро извлечь из словаря его значение —для этого используйте квадратные скобки. Если указать неправильный ключ, мы
получим ошибку
dict = {
'Гарри Поттер и философский камень' : 'Джоан Роулинг',
'Убить пересмешника' : 'Харпер Ли'
}
print(dict['Гарри Поттер и философский камень']) # Джоан Роулинг
38. Словарь
# чтобы создать словарь в квадратных скобках указываем ключ, а потом, череззнак равенства, добавляем значение.
dict['Преступление и наказание'] = 'Фёдор Достоевский‘
# чтобы удалить элемент из словаря, используют команду del. При этом нам
достаточно ввести только ключ, а значение удалится вместе с ним.
del dict['Убить пересмешника']
# чтобы изменить значение, используем ту же структуру, что и для создания
dict['Гарри Поттер и философский камень'] = ‘Александр Пушкин’
39. Словарь
# метод get() возвращает значение из словаря по ключу — или None, еслитакого ключа не существует.
print(dict.get('Гарри Поттер и философский камень'))
# Джоан Роулинг
print(dict.get('Гарри Поттер и Колобок‘))
# None
40. Словарь
# метод pop() удаляет элемент из словаря по ключу.dict.pop('Гарри Поттер и философский камень')
# метод keys() возвращает все ключи из словаря — но без значений.
print(dict.keys())
# ['Гарри Поттер и философский камень', 'Убить пересмешника']
41. Словарь
# метод values() возвращает все значения из словаря — но без ключей.print(dict.values()) # ['Джоан Роулинг', 'Харпер Ли']
# метод items() возвращает все пары «ключ — значение».
print(dict.items())
# [('Гарри Поттер и философский камень', 'Джоан Роулинг'), ('Убить
пересмешника', 'Харпер Ли')]
42. Практика
3адача 1. Работа со словаремУ вас есть словарь книг, в котором по ключу находятся жанры, а по значению названия
книг.
1. Добавьте новую книжу по жанру
2. Удалите книгу по жанру
3. Измените название одной книги
4. Очистите список книг у жанра
43. Практика
Задача 2: Обработка множества подписчиковЕсть множество подписчиков на рассылку и множество отписавшихся пользователей.
Найдите пользователей, которые всё ещё подписаны.
Добавьте нового подписчика.
Объедините два множества подписчиков из разных рассылок.
Удалите пользователя из множества подписчиков.
44. Практика
Задача 3: Сложная структура словаряСоздайте вложенный словарь, где ключи внешнего словаря — названия стран, а значения
— словари с городами и их населением.
Добавьте новую страну с городами.
Измените население одного города.
Удалите город из страны.
Найдите страну с наибольшим количеством городов.
45. Практика
Задача 4: Работа с кортежамиЕсть список кортежей, где каждый кортеж содержит имя студента и его оценки.
Отсортируйте список по средней оценке студентов.
Найдите студента с наивысшей средней оценкой.
Добавьте новую оценку для студента.
Удалите студента из списка.
46. Практика
Задача 5: Словари и множестваУ вас есть словарь, где ключи — имена пользователей, а значения — множества их
любимых фильмов.
Добавьте новый фильм в множество для пользователя.
Найдите фильмы, которые нравятся всем пользователям.
Удалите фильм из множества пользователя.
Найдите пользователя с наибольшим количеством любимых фильмов.
47. Практика
Задача 6: Вложенные спискиЕсть двумерный список, представляющий таблицу чисел (матрицу).
Поменяйте местами два указанных столбца.
Найдите сумму всех элементов в строке.
Добавьте новую строку в матрицу.
Удалите столбец из матрицы.
48. Практика
Задача 7: Сложные словариСоздайте словарь, где ключи — названия проектов, а значения — списки словарей с
информацией о задачах (название, статус, срок).
Добавьте новую задачу в проект.
Измените статус задачи.
Удалите задачу из проекта.
Найдите проекты с просроченными задачами.
49. Практика
Задача 5: Словари и множестваУ вас есть словарь, где ключи — имена пользователей, а значения — множества их
любимых фильмов.
Добавьте новый фильм в множество для пользователя.
Найдите фильмы, которые нравятся всем пользователям.
Удалите фильм из множества пользователя.
Найдите пользователя с наибольшим количеством любимых фильмов.
50. Практика
Задача 8: Множества и словариУ вас есть словарь, где ключи — категории товаров, а значения — множества артикулов.
Добавьте новый артикул в категорию.
Найдите артикулы, которые присутствуют в нескольких категориях.
Удалите артикул из всех категорий.
Объедините две категории в одну.
51. Практика
Задача 9: Кортежи и спискиЕсть список кортежей, где каждый кортеж содержит название продукта и его цену.
Отсортируйте список по цене.
Найдите продукт с минимальной ценой.
Добавьте новый продукт в список.
Удалите продукт с определённой ценой.
Программирование