Сьогодні ми створимо невеличку магію. Наша черепашка почне малювати у циклах. І створювати складні фігури. А також ми закріпимо поняття функцій і навчимося створювати функції з параметрами.
Для чого створювати функції з параметрами у Python
Ми вже знаємо, що функція – то шматок коду, який вміє робити якусь конкретну річ. Викликати функцію можна багато разів, а отже цей шматок коду не треба переписувати, достатньо просто викликати.
А що якщо нам треба функція, яка поводиться по різному, залежно від певних змінних? Повернемося до вже відомих нам котів. Кожен кіт має свій неповторний талант. А наша функція вміє виводити ім’я котика й описувати його таланти. Тому маємо два параметри name та talent. Тепер ми можемо направити функції хоч 100 різноманітних котів, а вона слухняно виведе всю необхідну нам інфу:

Згадуємо черепашку! Вона допоможе нам з функціями.
Давайте трохи пригадаємо команди черепашки. Вони нам сьогодні ще знадобляться. Отже, програма має починатися з підключення бібліотеки й закінчуватися exitonclick():
from turtle import * # підключаємо бібліотеку на початку
...
exitonclick() # цей рядок в кінці програми
Базові команди черепашки:
forward(distance) # Проповзти вперед на distance пікселів;
backward(distance) # Проповзти назад на distance пікселів;
right(angle) # Повернутися ліворуч на angle градусів;
left(angle) # Повернутися праворуч на angle градусів;
circle (50) # малює коло радіусом 50
up() # підняти олівець (не малювати)
down() # опустити олівець (малювати)
width (3) #ширина олівця
speed(speed) # швидкість черепашки
color("black") # колір контуру
fillcolor("blue") # колір заповнення
begin_fill()
# тут команди, що малюють фігуру
end_fill()
Ось ще кілька корисних команд:
goto(x, y) # Перемістити черепашку в крапку з координатами (x, y);
setx(x) # Встановити x координату черепашки;
sety(y) # Встановити y координату черепашки;
position() #Отримати поточні координати черепашки;
xcor() #Отримати x координату черепашки;
ycor() #Отримати y координату черепашки;
home() #Повернути черепашку додому – у точку, з координатами (0,0);
Практика. Функції з параметрами у Python
1: Створімо прямокутник зі сторонами 120 та 70.
from turtle import *
forward(120)
left(90)
forward(70)
left(90)
forward(120)
left(90)
forward(70)
left(90)
exitonclick()
2: Помістимо цей код в простеньку функцію. Функцію назвемо rectangle.
from turtle import *
def rectangle():
forward(120)
left(90)
forward(70)
left(90)
forward(120)
left(90)
forward(70)
left(90)
rectangle()
exitonclick()

3: Тепер зробимо так, щоб наш прямокутник був зеленого кольору (можеш обрати інший)
4: А зараз трохи змінимо код і створимо функцію з параметрами. Щоб ашою функцією можна було користуватись, щоб намалювати прямокутники різного розміру та різних кольорів, треба передавати в функцію ці розміри та кольори.
Одже, перший рядок функції зміниться так:
def rectangle(h, w, col):
Тепер у нас є змінні :
h – довжина прямокутника.(була 120)
w – ширина прямокутника. (була 70)
col – колір контуру. (Був “green”)
Замініть відповідні цифри та букви на змінні.
Коли викликаєте функцію тепер буде такий код:
rectangle (120,70,"green")

5: Додайте колір фону для прямокутників (змінна може називатись bcol)
6: Кілька разів застосуйте функцію з різними параметрами. Можна трохи розвернутись між викликами функцій:
left (15)
щоб прямокутники не заважали одне одному.
7 (Додаткове): Створіть функцію для малювання кола. У неї будуть 3 параметри: радіус кола, колір контуру та колір кола
8: Тепер створимо картину у стилі сучасного мистецтва. Для цього нам треба буде цикл і випадкові числа для координат, з яких ми почнемо малювати. Програма має:
🟥 випадковим чином визначати положення для прямокутника (числа від -200 до 200, команда goto())
🟧 намалювати 25 прямокутників
🟩 розміри прямокутника мають бути випадкові (від 10 до 200)
🟨Колір контуру має бути випадковим. (Для цього створи список кольорів і випадковим чином вибери один з кольорів) (random.choice(colors))
🟦(Додаткове) Колір фігури має бути випадковим (random.choice(colors))
🟪(Додаткове) Кут, на який повернуто прямокутник, має бути теж випадковим числом (від 0 до 360)
⬛(Додаткове) Цикл також має малювати і випадкові кола різного радіуса та різних кольорів
Підказки по командах random:
print(random.randint(20, 35)) # значення від 20 до 35
list1=["a","b","c","d"]
print(random.shuffle(list1)) # перемішує елементи списку випадковим чином
print(random.choice(list1)) # повертає випадковий елемент списку



9 (Додаткове): Створіть функцію, яка малює (використай цикл):
Правильний 6-кутник.
Правильний 10-тикутник
Правильний 15-тикутник
Правильний 20-тикутник
Кут, на який повертатись можна порахувати за формулою: 180-( 180 (n-2):n ) (де n – кількість кутів). Наприклад:
6-тикутник: 180-(180 (6-2):6)


Домашня робота
1: Зробіть функцію для малювання квадрата. Параметри будуть: сторона квадрата, колір квадрата.
2: Створіть цикл, який намалює 20 квадратів. Використайте функцію малювання квадрата. після малювання кожного черепашка має повернутися на 18. Квадрати мають бути однакові за розмірами
3: Створіть цикл, який намалює 20 квадратів. Використайте функцію малювання квадрата. після малювання кожного черепашка має повернутися на 18. Квадрати мають бути різні за розмірами
4: Намалюйте 10 однакових прямокутників в рядок. Прямокутники має малювати функція! (+3 бали, якщо використаєте цикл)


Level Up!
Функції з параметрами у Python
1: Намалюйте шахове поле за допомогою функції малювання прямокутника
2: Намалюйте будинок. В ньому 7 поверхів, на кожному поверсі по 4 вікна. На першому поверсі 2 вікна і двері.

Відео з поясненням функції тут.
Не зупиняйтесь у вивченні Python! До зустрічі на наступних уроках!