Python: черепаха не может вызвать функцию дважды - PullRequest
0 голосов
/ 02 марта 2019

У меня есть вопрос, я пытался нарисовать квадрат и круг в Python (2.7) с помощью модуля turtle.

import turtle
def draw_cricle(circle_size):

    boby = turtle.Turtle()

    boby.color("black")
    boby.shape("arrow")

    boby.right(90)
    boby.forward(200)
    boby.left(90)
    boby.back(20)

    boby.circle(circle_size)

def draw_square(forward_dst, right_angle):
    window = turtle.Screen()

    window.bgcolor("red")
    brad = turtle.Turtle()
    brad.shape("circle")
    brad.speed(3)

    brad.forward(forward_dst)
    brad.right(right_angle)
    brad.forward(forward_dst)
    brad.right(right_angle)
    brad.forward(forward_dst)
    brad.right(right_angle)
    brad.forward(forward_dst)
    brad.right(right_angle)
    window.exitonclick()

draw_square(100,90)

draw_cricle(100)

Моя проблема в том, что я не могу вызвать функцию draw_circleпосле вызова функции draw_square.

И да, я знаю, я должен был использовать цикл в draw_square

1 Ответ

0 голосов
/ 02 марта 2019

Вы закрываете окно при запуске window.exitonclick () из функции draw_square.Вам следует определить окно вне этих функций, если вы хотите использовать одно и то же окно для рисования как квадрата, так и круга, в противном случае вы закрываете окно еще до того, как начнете рисовать круг.

import turtle


def draw_cricle(circle_size):

    boby = turtle.Turtle()

    boby.color("black")
    boby.shape("arrow")

    boby.right(90)
    boby.forward(200)
    boby.left(90)
    boby.back(20)

    boby.circle(circle_size)

def draw_square(forward_dst, right_angle):

    brad = turtle.Turtle()
    brad.shape("circle")
    brad.speed(3)

    brad.forward(forward_dst)
    brad.right(right_angle)
    brad.forward(forward_dst)
    brad.right(right_angle)
    brad.forward(forward_dst)
    brad.right(right_angle)
    brad.forward(forward_dst)
    brad.right(right_angle)

window = turtle.Screen()
window.bgcolor("red")

draw_square(100,90)
draw_cricle(100)


window.exitonclick()
...