这个龟代码有什么问题?

时间:2013-12-10 20:20:41

标签: python

from turtle import *
wn = turtle.Screen()
wn.bgcolor(#0077AA)
t = turtle.Turtle()
#turtle

导入乌龟

def square():
    for i in range(10):
        for j in range (4):
            t.pendown()
            t.forward(50)
            t.right(90)
        t.penup()
        t.forward(50)

定义一个函数

def multi_square():
    for k in range(10):
        square()
        t.right(90)
        t.forward(50)
        t.right(90)
        t.forward(500)
        t.right(180)

定义另一个函数并调用其中第一个定义的函数

2 个答案:

答案 0 :(得分:3)

您必须将背景颜色设为字符串:

wn.bgcolor('#0077AA')

否则,注意到#,Python认为这是一个评论。

答案 1 :(得分:3)

您的代码中存在多个错误。

正如iCodez指出的那样,#0077AA)是一个评论;你需要引号来制作一个字符串。

如果您执行from turtle import *turtle中的类和函数只能使用非限定名称访问,例如Screen;如果您想使用turtle.Screen这样的合格名称,则需要import turtle

您定义了两个函数,但从不调用它们,因此您的代码将不会执行任何操作。您需要在结尾处添加对multi_square()的调用。

你的multi_square函数绘制一个正方形,然后一直移动到屏幕的左边缘并绘制另一个(仅部分可见)一个,然后从屏幕边缘移开并且不会显示任何内容以后再。你需要更合理的坐标。也许你想移动50,50而不是50,500?

我不知道这是一个错误还是一个功能,但您的square功能连续10次绘制相同的方块。我假设你想要观看乌龟跑来跑去。

把所有这些放在一起:

import turtle
wn = turtle.Screen()
wn.bgcolor('#0077AA')
t = turtle.Turtle()

def square():
    for i in range(10):
        for j in range (4):
            t.pendown()
            t.forward(50)
            t.right(90)
            t.penup()
            t.forward(50)

def multi_square():
    for k in range(10):
        square()
        t.right(90)
        t.forward(50)
        t.right(90)
        t.forward(50)
        t.right(180)

multi_square()

Here's the output