我正在学习关于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()
答案 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()