Условные конструкции
Условия
Условия
Условия
Условия
Условия
Условия
Каскадные условные инструкции
Каскадные условные инструкции
Практика
Практика
Сложные типы переменных
Список (List)
Список
Примеры
Новые команды
Немного подробностей
Кортеж (tuple)
Кортеж
Кортеж
Множество Set
Множество
Множество
Множество
Множество
Множество
Множество
Множество
Множество
Множество
Множество
Множество
Множество
Множество
Словарь Dict
Словарь
Словарь
Словарь
Словарь
Словарь
Словарь
Практика
Практика
Практика
Практика
Практика
Практика
Практика
Практика
Практика
Практика
778.99K
Категория: ПрограммированиеПрограммирование

Условные конструкции

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: Кортежи и списки
Есть список кортежей, где каждый кортеж содержит название продукта и его цену.
Отсортируйте список по цене.
Найдите продукт с минимальной ценой.
Добавьте новый продукт в список.
Удалите продукт с определённой ценой.
English     Русский Правила