МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»
Методическая разработка
«Словари на языке Python»
к дополнительной общеобразовательной
общеразвивающей программе
технической направленности
«Программирование на Python»
Возраст детей: 10-17 лет
Автор: Костычев Вадим Александрович
г. Заречный Пензенской области
2023 г.
В ходе изучения программирования на основе языка Python большую роль играет разработка проектов. Они позволяют отработать как навыки программирования, вспомнить работу различных функций, команд, развить навыки построения алгоритмов.
Целью данной разработки является повышение интереса учащихся к техническому творчеству посредством работы над проектом на языке Python.
Данная методическая разработка используется как обучающий пример для работы по дополнительной общеобразовательной общеразвивающей программе технической направленности «Лаборатория робототехники». С их помощью учащиеся смогут применить теоретические знания на практике, построив сложные алгоритмы для решения различных задач.
В данной методической разработке будет рассмотрен такой тип данных, как словари, а также решение задач с их использованием.
Тип данных "Словарь" является одним из основных типов данных в языке программирования Python. Это упорядоченная коллекция объектов, которая представляет собой ассоциативный массив, где у каждого элемента есть ключ и соответствующее ему значение. В отличие от других структур данных, словари не хранят свои элементы в порядке их добавления, а организуют данные с помощью хэш-таблицы.
В Python словари определяются с использованием фигурных скобок {}. Ключи и значения разделяются двоеточием, а элементы разделяются запятыми. Вот пример создания словаря:
my_dict = {"apple": 3, "banana": 5, "orange": 2}
В данном примере у нас есть словарь с тремя элементами. Ключи "apple", "banana" и "orange" соответствуют значениям 3, 5 и 2 соответственно.
Методы работы со словарями:
1. Добавление и обновление элементов:
my_dict["apple"] = 4 # обновление значения элемента с ключом "apple"
my_dict["grape"] = 8 # добавление нового элемента с ключом "grape" и значением 8
2. Получение значения элемента по ключу:
print(my_dict["banana"]) # выводит значение элемента с ключом "banana"
3. Проверка наличия элемента в словаре:
print("apple" in my_dict) # выводит True, так как элемент с ключом "apple" присутствует в словаре
print("pear" in my_dict) # выводит False, так как элемент с ключом "pear" отсутствует в словаре
4. Удаление элемента из словаря:
del my_dict["orange"] # удаляет элемент с ключом "orange"
5. Получение всех ключей, значений или элементов словаря:
print(my_dict.keys()) # выводит все ключи словаря
print(my_dict.values()) # выводит все значения словаря
print(my_dict.items()) # выводит все элементы словаря (пары ключ-значение)
6. Определение длины словаря:
print(len(my_dict)) # выводит количество элементов в словаре
7. Итерация по словарю:
for key in my_dict:
print(key, my_dict[key])
Это основные операции, которые можно выполнять со словарями в Python. Зная эти основы, вы сможете работать с данным типом данных и использовать его в своих программах.
Задача 1. Книжный магазин
У вас есть словарь, где ключами являются названия книг, а значениями - их стоимость. Выведите книги, стоимость которых выше 1000 рублей.
"Достоевский. Преступление и наказание": 1250,
"Толстой. Война и мир": 2000,
"Пушкин. Евгений Онегин": 750,
"Чехов. Вишневый сад": 1500
Выходные данные:
Достоевский. Преступление и наказание
Толстой. Война и мир
Чехов. Вишневый сад
Листинг программы:
books = {
"Достоевский. Преступление и наказание": 1250,
"Толстой. Война и мир": 2000,
"Пушкин. Евгений Онегин": 750,
"Чехов. Вишневый сад": 1500
}
for book, price in books.items():
if price 1000:
print(book)
Задача 2. Адресная книга
У вас есть словарь, где ключами являются имена людей, а значениями - их контактная информация (например, номер телефона). Необходимо найти контактную информацию человека с заданным именем.
"Иванов": "+79123456789",
"Петров": "+79876543210",
"Сидоров": "+79012345678",
"Смирнов": "+79987654321"
Входные данные:
Смирнов
Выходные данные:
Введите имя человека: Смирнов
Контактная информация: +79987654321
Листинг программы:
address_book = {
"Иванов": "+79123456789",
"Петров": "+79876543210",
"Сидоров": "+79012345678",
"Смирнов": "+79987654321"
}
name = input("Введите имя человека: ")
if name in address_book:
print("Контактная информация:", address_book[name])
else:
print("Человек с таким именем не найден.")
Задача 3. Частотный анализ текста
Вам даётся строка текста с клавиатуры. Необходимо подсчитать, сколько раз каждое слово встречается в тексте.
Входные данные:
Lorem ipsum dolor sit amet consectetur adipiscing elit ipsum
Выходные данные:
Lorem : 1
ipsum : 2
dolor : 1
sit : 1
amet : 1
consectetur : 1
adipiscing : 1
elit : 1
Листинг программы:
text = input()
words = text.split()
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
for word, count in word_count.items():
print(word, ":", count)
Задача 4. Дата рождения
У вас есть словарь, содержащий информацию о дате рождения разных людей. Ключами являются их имена, а значениями - их даты рождения в формате "dd.mm.yyyy". Отсортируйте людей по дате рождения.
"Иванов Иван": "12.05.1990",
"Петров Петр": "01.07.1985",
"Сидоров Сидор": "23.03.1995",
"Алексеев Алексей": "05.09.1988"
Выходные данные:
Люди, отсортированные по дате рождения:
Петров Петр - 01.07.1985
Алексеев Алексей - 05.09.1988
Иванов Иван - 12.05.1990
Сидоров Сидор - 23.03.1995
Листинг программы:
birthdays = {
"Иванов Иван": "12.05.1990",
"Петров Петр": "01.07.1985",
"Сидоров Сидор": "23.03.1995",
"Алексеев Алексей": "05.09.1988"
}
sorted_birthdays = sorted(birthdays.items(), key=lambda x: x[1])
print("Люди, отсортированные по дате рождения:")
for person, birthdate in sorted_birthdays:
print(person, "-", birthdate)
Задача 5. Прогноз погоды
У вас есть словарь, где ключами являются названия городов, а значениями - информация о погоде (например, температура и погодные условия). Необходимо написать программу, которая будет запрашивать у пользователя название города и выводить информацию о погоде в этом городе.
"Москва": {"Температура": "25°C", "Погодные условия": "Ясно"},
"Санкт-Петербург": {"Температура": "18°C", "Погодные условия": "Облачно"},
"Новосибирск": {"Температура": "32°C", "Погодные условия": "Солнечно"},
"Екатеринбург": {"Температура": "28°C", "Погодные условия": "Дождь"},
"Казань": {"Температура": "30°C", "Погодные условия": "Гроза"}
Входные данные:
Новосибирск
Выходные данные:
Введите название города:
Новосибирск
Погода в Новосибирск:
Температура: 32°C
Погодные условия: Солнечно
Листинг программы:
weather = {
"Москва": {"Температура": "25°C", "Погодные условия": "Ясно"},
"Санкт-Петербург": {"Температура": "18°C", "Погодные условия": "Облачно"},
"Новосибирск": {"Температура": "32°C", "Погодные условия": "Солнечно"},
"Екатеринбург": {"Температура": "28°C", "Погодные условия": "Дождь"},
"Казань": {"Температура": "30°C", "Погодные условия": "Гроза"}
}
city = input("Введите название города: ")
if city in weather:
print("Погода в", city + ":")
for key, value in weather[city].items():
print(key + ":", value)
else:
print("Неправильно введено название города.")