Функции — создаём свои команды
Написал один раз — вызываешь сколько хочешь.
Старт
Ты уже умеешь строить стену. А если нужно 10 разных стен в разных местах? Копировать код 10 раз?
Нет. Ты создаёшь функцию — свою собственную команду. Написал один раз, вызываешь сколько хочешь.
Функция — это как рецепт крафта. Один раз записал рецепт кирки — и крафтишь сколько угодно кирок, не вспоминая каждый раз расположение ингредиентов.
Теория: Функции
def имя(): — создаём функцию
Ключевое слово def (от «define» — определить) создаёт новую команду:
def построй_дом():
поставь_стены()
поставь_крышу()
поставь_дверь()
Теперь построй_дом() — твоя личная команда. Один раз написал — строишь дома везде:
построй_дом() # дом №1
вперёд()
построй_дом() # дом №2
вперёд()
построй_дом() # дом №3
Параметры — настраиваемые функции
Хочешь стены разного размера? Добавь параметры:
def построй_стену(ширина, высота):
for строка in range(высота):
for блок in range(ширина):
поставь_блок()
построй_стену(10, 5) # стена 10×5
построй_стену(3, 20) # башня 3×20
Параметры — как ингредиенты в рецепте. Разные ингредиенты → разный результат.
return — результат функции
Функция может не только делать что-то, но и возвращать результат:
def площадь(a, b):
return a * b
результат = площадь(10, 5) # результат = 50
Аналогия: функция = рецепт крафта. Параметры = ингредиенты. return = результат крафта.
def?удвой(5)?
def удвой(x):
return x * 2
Практика: Создаём функции
Задача 1: Создай функцию линия, которая строит линию заданной длины.
линия(длина): for i in range(длина): поставь_блок() ()линия()
💡 Подсказка
Чтобы создать функцию, нужно ключевое слово из трёх букв. После каждого блока черепашка шагает вперёд. Вызвать функцию можно с любым числом.
✅ Решение
def линия(длина):
for i in range(длина):
поставь_блок()
вперёд()
линия(5)
Задача 2: Функция с return — посчитай площадь стены.
def площадь_стены(ширина, высота): ширина * высотаблоков = площадь_стены(10, ) print(блоков)
💡 Подсказка
Чтобы функция вернула результат, используй ключевое слово из 6 букв. Второй параметр — любое число (высота стены).
✅ Решение
def площадь_стены(ширина, высота):
return ширина * высота
блоков = площадь_стены(10, 5)
print(блоков) # 50
Сборка: Свои команды в действии
Ты только что создал свои первые функции. Теперь у тебя есть линия() и площадь_стены() — команды, которых не существовало до тебя.
Знаешь что? print() — тоже функция. Просто её написал кто-то до тебя. А range(), которую ты использовал в прошлом уроке? Тоже функция! Кто-то её создал, чтобы тебе не пришлось.
Программирование — это создание новых инструментов из существующих. Как крафт в Minecraft: из базовых ресурсов → сложные предметы.
Создай функцию, которая строит грядку заданного размера и засаживает её:
построй_грядку(длина, ширина): for ряд in range(ширина): for блок in range(длина): вскопай() ()вперёд() следующий_ряд()построй_грядку(, )
💡 Подсказка
Функция начинается с def. После вскопай() нужно посадить семена. Вызвать функцию можно с любыми размерами грядки.
✅ Решение
def построй_грядку(длина, ширина):
for ряд in range(ширина):
for блок in range(длина):
вскопай()
посади()
вперёд()
следующий_ряд()
построй_грядку(8, 4)
Итоги
Теперь ты знаешь:
- ✅
def— создаёт новую функцию - ✅ Параметры — делают функцию настраиваемой
- ✅
return— возвращает результат - ✅ Функция = написал один раз, используешь везде
Функции в реальном мире:
- 📱 Каждая кнопка в приложении = вызов функции
- 🖨️
print()— тоже функция (просто написана кем-то до тебя) - ⛏️ Весь Minecraft = тысячи функций, вызывающих друг друга
Fun fact: Функция range(), которую ты уже использовал — это тоже функция! Кто-то её написал, чтобы тебе не пришлось. 🤯
Ты прошёл все основы Модуля 1! Алгоритмы, переменные, условия, циклы, функции — это фундамент любого языка программирования. Дальше — структуры данных и паттерны.