我正在用Python turtle做一个红绿灯,在序列的最后,我希望所有的灯都闪烁黄色

我正在用Python turtle做一个红绿灯,在序列的最后,我希望所有的灯都闪烁黄色,python,turtle-graphics,Python,Turtle Graphics,这是我的密码。我只想让三只乌龟同时移动/眨眼 就像一个坏了的红绿灯。 我不知道怎么做。 如果你想看到我所有的代码,请告诉我答案 #flash speed(20) #pens pen1 = Turtle() pen2 = Turtle() pen3 = Turtle() #loop def loop(): while True: pen1.penup() pen1.color('yellow') pen1.goto(0,90) pen1.begin_fill()

这是我的密码。我只想让三只乌龟同时移动/眨眼 就像一个坏了的红绿灯。 我不知道怎么做。 如果你想看到我所有的代码,请告诉我答案

#flash
speed(20)
#pens
pen1 = Turtle()
pen2 = Turtle()
pen3 = Turtle()
#loop
def loop():

while True:
    pen1.penup()
    pen1.color('yellow')
    pen1.goto(0,90)
    pen1.begin_fill()
    pen1.pendown()
    pen1.circle(40)
    pen1.penup()
    pen1.end_fill()
    pen1.color('black')
    time.sleep(1)
    pen1.begin_fill()
    pen1.pendown()
    pen1.circle(40)
    pen1.penup()
    pen1.end_fill()
    time.sleep(1)
while True:
    pen2.penup()
    pen2.color('yellow')
    pen2.goto(0,-140)
    pen2.begin_fill()
    pen2.pendown()
    pen2.circle(40)
    pen2.penup()
    pen2.end_fill()
    pen2.color('black')
    time.sleep(1)
    pen2.begin_fill()
    pen2.pendown()
    pen2.circle(40)
    pen2.penup()
    pen2.end_fill()
    time.sleep(1)



return loop()

这里有一个基于两个关键点的解决方案:第一,海龟不是用来画交通灯的,海龟是交通灯;其次,我们使用turtle中的
ontimer
事件来控制闪烁:

from turtle import Turtle, Screen

CURSOR_SIZE = 20

def blink():
    for turtle in screen.turtles():
        turtle.fillcolor('yellow' if turtle.fillcolor() == 'black' else 'black')

    screen.ontimer(blink, 1000)

screen = Screen()

pen1 = Turtle(shape='circle')
pen1.shapesize(80 / CURSOR_SIZE)
pen1.color('black', 'yellow')
pen1.penup()
pen1.sety(90)

pen2 = pen1.clone()
pen2.sety(0)

pen3 = pen1.clone()
pen3.sety(-90)

blink()

screen.mainloop()

这看起来不像python…while循环将永远运行,所以我想它不会进入第二个循环…那么我该如何修复它?如果这真的是python,请正确缩进代码,这样它至少可以执行。标签在堆栈溢出时表现不佳。请使用4-空格缩进。StephenC,ibug这是一个与python相关的问题。它是和