@thesirvlad

Как сделать функцию в которой в переменной будет много функций?

Вот например код:
from turtle import *
color("black", "red")
m = 100
begin_fill()
for i in range(4):
    forward(12*m)
    right(940)
end_fill()
canvas = getcanvas()
cnt = 0
for y in range(-100*m, 100*m, m):
    for x in range(-100*m, 100*m, m):
        item = canvas.find_overlapping(x,y,x,y)
        if len(item) == 1 and item[0] == 5:
            cnt += 1
print(cnt)
done()
exit()

Есть часть между begin_fill() и end_fill()
Есть такая возможность чтобы сделать переменную в которой будет например это:
for i in range(4):
    forward(12*m)
    right(940)


Просто вот так например
from turtle import *
color("black", "red")
m = 100
funcs = [
    forward(12 * m)
    right(940)
]
begin_fill()
for i in range(4):
    funcs
end_fill()
canvas = getcanvas()
cnt = 0
for y in range(-100*m, 100*m, m):
    for x in range(-100*m, 100*m, m):
        item = canvas.find_overlapping(x,y,x,y)
        if len(item) == 1 and item[0] == 5:
            cnt += 1
print(cnt)
done()
exit()
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Блок операторов, вынесенный отдельно и именованный - это и есть функция, вообще-то. Читай про ключевое слово def.
from turtle import *

color("black", "red")
m = 100

def myfunc():  # мы говорим "существует функция myfunc, не принимающая параметров"
    forward(12*m)  # функция "увидит" переменную m, описанную выше по коду
    right(940)

begin_fill()
for i in range(4):
    myfunc()  # вызываем нашу функцию
end_fill()
canvas = getcanvas()
cnt = 0
for y in range(-100*m, 100*m, m):
    for x in range(-100*m, 100*m, m):
        item = canvas.find_overlapping(x,y,x,y)
        if len(item) == 1 and item[0] == 5:
            cnt += 1
print(cnt)
done()
exit()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы