首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有别的方法可以逐个选择蓝色和红色?

有没有别的方法可以逐个选择蓝色和红色?
EN

Stack Overflow用户
提问于 2020-12-17 22:20:04
回答 2查看 47关注 0票数 1

它的编码是从1000半径一个接一个地转,就像红色,蓝色,红色,蓝色。我用if else做到了,但我相信我可以用更高级的方式做到这一点,比如随机、列表等。你能帮上忙吗?

代码语言:javascript
复制
import turtle
screen = turtle.Screen()
turtle = turtle.Turtle('turtle')
turtle.pensize(3)
turtle.pencolor('red')
def circle(x, y, r):
    if r <= 0:
        return
    turtle.penup()
    turtle.goto(0, -r)
    turtle.pendown()
    turtle.circle(r)
    if (turtle.pencolor() == 'red'):
        turtle.pencolor('blue')
    else:
        turtle.pencolor('red')
    circle(0, 0, r-10)

circle(0, 0, 100)
screen.exitonclick()
EN

回答 2

Stack Overflow用户

发布于 2020-12-17 22:22:46

您可以使用itertools.cycle在颜色之间循环:

代码语言:javascript
复制
from itertools import cycle

colors = cycle(["red", "blue"])

# ...
def circle(...):
    turtle.pencolor(next(colors))  # will assign alternating values
    # ...
票数 5
EN

Stack Overflow用户

发布于 2020-12-18 03:10:20

您可以使用三元运算符在一行中设置颜色,而不是使用if-else的4行:

代码语言:javascript
复制
color = "red" if turtle.pencolor() == "blue" else "blue"
turtle.pencolor(color)

它节省了几行代码,但与您的代码相比,它并没有真正优化任何东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65342484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档