一只乌龟如何在for循环中上下移动?

2024-04-24 00:06:34 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在一个虚拟编程课上学习python,我有一个作业,我必须用海龟图形创建一个图片。我在程序中使用了for循环和程序员定义的函数,但是我有一个问题,我想在我的图片中做一些事情。我在天空中画云,我试着把云画在不同的位置。我以40为增量增加x坐标,但是我试图让云在穿过时被放置得越来越高,越来越低。它位于代码列表的末尾:

import turtle

def backFill(b, c, x, y, l, h):
    b.penup()
    b.setpos(x, y)
    b.color(c)
    b.pendown()
    b.begin_fill()
    for side in range(2):
        b.forward(l)
        b.left(90)
        b.forward(h)
        b.left(90)
    b.end_fill()

def drawCloud(c, x, y):
    c.penup()
    c.setpos(x, y)
    c.pendown()
    c.color("grey")
    c.begin_fill()
    for side in range(5):
        c.circle(10)
        c.left(80)
    c.end_fill()

def main():
    print("Cars")
    joe = turtle.Turtle()
    joe.speed(0)

    backFill(joe,"green",-200,-100,400,25)
    backFill(joe,"black",-200,-75,400,75)
    backFill(joe,"green",-200,0,400,25)
    backFill(joe,"sky blue",-200,25,400,110)

    x=-192.5
    for side in range(10):
        backFill(joe,"yellow",x,-40,25,5)
        x=x+40

    x=-180
    y=100
    for side in range(15):
        drawCloud(joe,x,y)
        x=x+40
        y=y-10

main()

目前,随着每一个云层的绘制,云层会慢慢下降,但我要做的是使云层处于不同的高度,就像一个云层在100,下一个90,然后又回到100,等等。我尝试了类似y=y-10, y+10的方法,看它第一次重复时是否会下降10,然后下一次它会上升10。在

https://gyazo.com/3ad5268231b3217b81636cc070573b75

太长了,读不下去了。我想把一个环形图片上下移动,这样就不只是直线了。如何在for循环中向下移动一次,然后再向上移动一次?在


Tags: infordef图片rangeleftfillside
1条回答
网友
1楼 · 发布于 2024-04-24 00:06:34

您可以检查side是偶数还是奇数,以决定是增加还是减少云位置。是这样的:

for side in range(15):
    drawCloud(joe,x,y)
    x=x+40
    if(side%2==0):
        y=y-10
    else:
        y=y+10

相关问题 更多 >