Загрузка данных


import tkinter as tk
from functools import partial
from turtle import RawTurtle


# Функции управления движением
def move_forward():
    turtle.forward(50)


def turn_left():
    turtle.left(90)


def turn_right():
    turtle.right(90)


def clear_canvas():
    turtle.reset()
    turtle.shape("turtle")


# Функция смены цвета
def set_color(color_name):
    turtle.color(color_name)


# Инициализация главного окна
root = tk.Tk()
root.title("Черепашка-рисовальщик")

# Создание холста
canvas = tk.Canvas(root, width=400, height=400, bg="white")
canvas.pack(padx=10, pady=10)

# Инициализация черепашки
turtle = RawTurtle(canvas)
turtle.shape("turtle")

# Панель управления движением
control_frame = tk.Frame(root)
control_frame.pack(pady=5)

tk.Button(control_frame, text="Налево", width=10, command=turn_left).pack(side=tk.LEFT, padx=5)
tk.Button(control_frame, text="Вперед", width=10, command=move_forward).pack(side=tk.LEFT, padx=5)
tk.Button(control_frame, text="Направо", width=10, command=turn_right).pack(side=tk.LEFT, padx=5)
tk.Button(control_frame, text="Очистить", width=10, command=clear_canvas).pack(side=tk.LEFT, padx=5)

# Панель выбора цвета
color_frame = tk.Frame(root)
color_frame.pack(pady=10)

# Список цветов для создания кнопок в цикле
colors = [
    {"name": "Красный", "value": "red", "fg": "white"},
    {"name": "Синий", "value": "blue", "fg": "white"},
    {"name": "Зеленый", "value": "green", "fg": "white"},
    {"name": "Желтый", "value": "yellow", "fg": "black"}
]

for color in colors:
    # Использование partial вместо lambda для передачи аргумента в функцию
    color_command = partial(set_color, color["value"])

    tk.Button(
        color_frame,
        text=color["name"],
        bg=color["value"],
        fg=color["fg"],
        width=10,
        command=color_command
    ).pack(side=tk.LEFT, padx=5)

# Запуск приложения
root.mainloop()