Представь, что ты создаешь карточку персонажа в игре. У него есть имя, атака, здоровье, класс. Как хранить всё это вместе?
Можно создать несколько переменных:
hero_name = "Артур"
hero_attack = 15
hero_health = 100
hero_class = "Воин"
Но это неудобно! Что если персонажей много? Тут нужно что-то лучше.
🗂️ Что такое словарь?
Словарь (dictionary) — это как коробка с ярлычками. На каждом ярлычке написано название (ключ), а внутри лежит значение.
В обычном словаре:
- Слово (ключ) → Определение (значение)
- “Дракон” → “Мифическое существо, дышащее огнем”
В Python словаре:
- Ключ → Значение
- "name" → "Артур"
- "attack" → 15
🎮 Создание первого словаря
Словарь создается с помощью фигурных скобок { }:
hero = {
"name": "Артур",
"attack": 15,
"health": 100
}
Синтаксис:
- Фигурные скобки { }
- Пары ключ: значение
- Разделяются запятыми
- Ключи обычно в кавычках (строки)
📥 Получение значений из словаря
Чтобы достать значение, используем квадратные скобки с ключом:
hero = {
"name": "Артур",
"attack": 15,
"health": 100
}
print(hero["name"]) # Выведет: Артур
print(hero["attack"]) # Выведет: 15
print(hero["health"]) # Выведет: 100
Важно: Пишем точно тот же ключ, который создали!
✏️ Изменение значений
Можем изменить любое значение в словаре:
hero = {"name": "Артур", "health": 100}
print(f"Здоровье: {hero['health']}") # 100
# Герой получил урон
hero["health"] = 80
print(f"Здоровье после удара: {hero['health']}") # 80
# Можем использовать математику
hero["health"] = hero["health"] - 20 # Отнимаем 20
print(f"Здоровье: {hero['health']}") # 60
# Короткая запись
hero["health"] -= 15 # Еще -15
print(f"Здоровье: {hero['health']}") # 45
➕ Добавление новых ключей
Просто присваиваем значение новому ключу:
hero = {
"name": "Артур",
"health": 100
}
# Добавляем новое поле
hero["level"] = 1
hero["exp"] = 0
print(hero)
# {'name': 'Артур', 'health': 100, 'level': 1, 'exp': 0}
🐲 Практический пример: карточка монстра
dragon = {
"name": "🐲 Огненный Дракон",
"attack": 25,
"health": 150,
"type": "огонь"
}
print(f"Противник: {dragon['name']}")
print(f"Атака: {dragon['attack']}")
print(f"Здоровье: {dragon['health']}")
print(f"Тип: {dragon['type']}")
# Дракон атакует героя
hero_health = 100
damage = dragon["attack"]
hero_health -= damage
print(f"\n💥 Дракон атаковал! Урон: {damage}")
print(f"Здоровье героя: {hero_health}")
Вывод:
Противник: 🐲 Огненный Дракон
Атака: 25
Здоровье: 150
Тип: огонь
💥 Дракон атаковал! Урон: 25
Здоровье героя: 75
📋 Список словарей: коллекция объектов
Самое мощное — можно создать список из словарей! Это как колода карт, где каждая карта — отдельный словарь:
creatures = [
{"name": "🐲 Дракон", "attack": 8, "health": 12},
{"name": "🧙 Маг", "attack": 6, "health": 8},
{"name": "⚔️ Рыцарь", "attack": 5, "health": 10}
]
# Выводим всех существ
for creature in creatures:
print(f"{creature['name']} - ATK: {creature['attack']}, HP: {creature['health']}")
Вывод:
🐲 Дракон - ATK: 8, HP: 12
🧙 Маг - ATK: 6, HP: 8
⚔️ Рыцарь - ATK: 5, HP: 10
🎯 Типы значений в словаре
В словаре могут быть любые типы данных:
player = {
"name": "Игрок1", # строка
"level": 5, # число
"health": 100.5, # дробное число
"is_alive": True, # булево значение
"inventory": ["меч", "щит"] # список
}
print(f"Имя: {player['name']}")
print(f"Уровень: {player['level']}")
print(f"Жив: {player['is_alive']}")
print(f"Инвентарь: {player['inventory']}")
⚠️ Частые ошибки
1. Ошибка в ключе
hero = {"name": "Артур", "health": 100}
# ❌ ОШИБКА: KeyError
print(hero["Name"]) # Буква N заглавная - это другой ключ!
# ✅ ПРАВИЛЬНО
print(hero["name"]) # Точно как в словаре
2. Забыли кавычки
# ❌ ОШИБКА
hero = {name: "Артур"} # name без кавычек
# ✅ ПРАВИЛЬНО
hero = {"name": "Артур"}
3. Запятые между парами
# ❌ ОШИБКА: забыли запятую
hero = {
"name": "Артур"
"health": 100
}
# ✅ ПРАВИЛЬНО
hero = {
"name": "Артур",
"health": 100
}
📊 Сравнение: Список vs Словарь
| Список | Словарь |
|---|---|
| Доступ по номеру (индексу) | Доступ по ключу (имени) |
names[0] → первый элемент |
hero["name"] → значение name |
Квадратные скобки [ ] |
Фигурные скобки { } |
| Порядок важен | Порядок не важен |
| Для однотипных данных | Для характеристик объекта |
Когда использовать список:
- Коллекция одинаковых вещей
- planets = ["Марс", "Венера", "Юпитер"]
- Нужен порядок
Когда использовать словарь:
- Описание одного объекта
- hero = {"name": "Артур", "level": 5}
- Нужны названия полей
🎯 Итог
| Действие | Код | Результат |
|---|---|---|
| Создать словарь | hero = {"name": "Артур"} |
Новый словарь |
| Получить значение | hero["name"] |
"Артур" |
| Изменить значение | hero["health"] = 80 |
health теперь 80 |
| Добавить ключ | hero["level"] = 1 |
Новое поле level |
| Урон персонажу | hero["health"] -= 10 |
health уменьшилось на 10 |
Запомни:
- ✅ Словарь — это пары ключ: значение
- ✅ Используй фигурные скобки { }
- ✅ Доступ через словарь["ключ"]
- ✅ Можно изменять и добавлять поля
- ✅ Идеально для хранения характеристик объектов
💬 კომენტარები (0)
კომენტარები ჯერ არ არის
გახდით პირველი, ვინც გააზიარებს აზრს ამ სტატიის შესახებ!