Підпрограма – це логічно незалежна спеціальним чином оформлена частина програми для розв’язування певної задачі. • До підпрограм можна багаторазово звертатися з інших частин програми. Таке звернення називають викликом підпрограми.
У Python усі підпрограми називають функціями. Кожна функція це «держава в державі», мініпрограма в програмі. В ній діють всі закони, що притаманні будь-якій програмі. Функція являє собою набір команд, як і сама програма, але вона розв'язує менш складне завдання.
Рекурсивною називається підпрограма, яка прямо або непрямо викликає сама себе.
Інколи функції групуються у модулі. Ми вже розглядали модуль підключення графічних можливостей turtle. В модулях зберігається опис його функції, які можна підключати і використовувати в будь-якій частині проекту або навіть в інших проектах. Про те, як підключати модулі ми вже говорили, пам'ятаєте стрічку from turtle import *.
Існують вбудовані функції і функції, створені користувачем. Вбудовані функції є частиною мови і можуть викликатися за іменем без попереднього оголошення. Наприклад, forward(30) це ні що інше, як виклик вбудованої функції, яка прописана в стандартному модулі turtle і промальовує відрізок довжиною у 30 пікселів у напрямку руху.
Якщо на потрібно, щоб функція виконувалася кожного разу з іншим параметром, то в дужках після назви функції ми пишемо так:
def vitannia(k):
print("hellow",k)
vitannia("my frend")
vitannia("my love")
Тобто, в нас виконається функція, де замість букви(параметра) буде підставлено значення в дужках.
Якщо ми використовуємо функцію таким чином, то ми отримуємо результат, але основна програма не може скористатися результатом роботи цієї функції(вона його не бачить), просто виводить результат. Для того, щоб програма побачила результат користуються командою return(), яка повертає(показує) результат програмі. Ця команда також спричиняє до виходу з функції, тобто, всі команди , що стоять після return виконуватися не будуть. Насправді, коли ми в попередніх прикладах не писали цю команду, то функція сприймала, що останнім рядком функції є рядок return None , тобто нічого не повертати.
Перепишемо Приклад1 так, щоб можна було використовувати обчислення функції в основній програмі:
def kvadrat(x):
return x*x
a=kvadrat(6)
print(a)
Як бачимо в самій функції команда print вже непотрібна. Функція виконалася, а результат виконання вже виводимо на екран.
Це дає змогу використовувати вкладені функції. Наприклад виведемо:
a=kvadrat(kvadrat(6))
print(a).
Функції можна використовувати в циклах та в розгалуженні. А також цикли та розгалуження можна використовувати при створенні функції.
Елементи сніжинки називаються фракталами. Фракта́л — нерегулярна, самоподібна структура. В широкому розумінні фрактал означає фігуру, малі частини якої в довільному збільшенні є подібними до неї самої.
Як бачимо на малюнку, сніжинка Коха, це рівносторонній трикуткик. Його можна вважати сніжинкою Коха нульового порядку.
Сніжинка більш високого порядку народжується з попередньої більш низького порядку шляхом заміни кожного ребра на чотири, з'єднаним ніби складені долоньки (_/\_).
Тобто сторона замінюється на чотири долоньки втроє менші, а кожна сторона долоньки також замінюється 4-ма долоньками втроє меншими і т.д.
Цю програму можна реалізувати різними способами, в прикладі розглянемо один з них.
змінна size -це довжина сторони, а змінна n- це деякий параметр, що показує рівень фігури.
Завдання. Для гігантів програмування. Попробуйте побудувати сніжинку третього рівня.