制作乌龟画一个带有环的正方形

时间:2018-01-25 03:10:45

标签: python turtle-graphics

我正在学习关于Udacity的课程,我们从学习turtle开始。有一个练习,你不应该重复

brad.forward(100)
brad.right(90)

四次(布拉德是乌龟的名字),而是创建一个循环。我的猜测是:

while True:
    brad.forward(100)
    brad.right(90)
    if turtle.position() == (0,0):
        break

然而,布拉德只是绘制了第一条上线。我错了什么?如果需要,完整代码如下。谢谢!

import turtle

def square():
    turtle.colormode(255)
    window = turtle.Screen()
    window.bgcolor(0,0,0)
    #meet brad
    brad = turtle.Turtle()
    brad.shape('arrow')
    brad.speed(1)
    brad.color(0,255,255)
    #brad creates a square
    while True:
        brad.forward(100)
        brad.right(90)
        if turtle.position() == (0,0):
            break
    turtle.exitonclick()

square()

4 个答案:

答案 0 :(得分:2)

turtle.position替换为brad.position。您正在检查通用龟对象而不是您创建的对象

答案 1 :(得分:1)

你可以使用一个循环,它只运行4次:

import turtle

def square():
    turtle.colormode(255)
    window = turtle.Screen()
    window.bgcolor(0,0,0)
    #meet brad
    brad = turtle.Turtle()
    brad.shape('arrow')
    brad.speed(1)
    brad.color(0,255,255)
    #brad creates a square
    for _ in range(4):
        brad.forward(100)
        brad.right(90)
    turtle.exitonclick()

square()

答案 2 :(得分:1)

通过标记,我们可以使广场没有重复的陈述也没有循环:

from turtle import Turtle, Screen

CURSOR_SIZE = 20

def square():
    # meet brad
    brad = Turtle('square', visible=False)
    brad.color('cyan', 'black')
    # brad creates a square
    brad.shapesize(100 / CURSOR_SIZE)
    brad.stamp()

screen = Screen()
screen.bgcolor('black')

square()

screen.exitonclick()

虽然可能不是你想要的解决方案,但代码中有一些你可能会觉得有用的海龟习语。

答案 3 :(得分:0)

import turtle

def square():
    turtle.colormode(255)
    window = turtle.Screen()
    window.bgcolor(0,0,0)
    #meet brad
    brad = turtle.Turtle()
    brad.shape('arrow')
    brad.speed(1)
    brad.color(0,255,255)
    #brad creates a square
    start_position = brad.position()
    while True:
        brad.forward(100)
        brad.right(90)
        if brad.position() == start_position:
            break
    brad.exitonclick()

square()