【问题标题】:Changing color while in a repeat in turtle在海龟中重复时改变颜色
【发布时间】:2023-09-02 06:46:01
【问题描述】:

我是一名 Python 初学者,正在做一项基本任务,用海龟写我的姓名缩写。我已经设置好我的姓名首字母重复正常工作的过程,但是,我需要在每次重复后改变颜色。经过广泛的研究,我无法让它工作。这是我的代码。

import turtle

screen = turtle.Screen()
screen.setup(400,400,0,0)

screen.bgcolor('black')

timmy = turtle.Turtle()
timmy.color('orange')

timmy.shape("turtle")

timmy.pencolor("purple")
timmy.pensize(7)

for i in range(0,4):

  timmy.penup()
  timmy.goto(-150,-150)

  timmy.pendown()

  timmy.left(90)
  timmy.forward(150)
  timmy.right(165)
  timmy.forward(155)
  timmy.left(150)
  timmy.forward(155)
  timmy.right(165)
  timmy.forward(150)

  timmy.penup()

  timmy.left(90)
  timmy.forward(30)
  timmy.left(90)

  timmy.pendown()

  timmy.forward(150)
  timmy.backward(75)
  timmy.right(90)
  timmy.forward(50)
  timmy.left(90)
  timmy.forward(75)
  timmy.left(180)
  timmy.forward(150)

  timmy.penup()

  timmy.left(90)
  timmy.forward(30)

  timmy.pendown()
  timmy.left(90)
  timmy.forward(150)
  timmy.right(165)
  timmy.forward(155)
  timmy.left(150)
  timmy.forward(155)
  timmy.right(165)
  timmy.forward(150)
  timmy.left(90)

【问题讨论】:

    标签: python colors repeat turtle-graphics


    【解决方案1】:

    由于您没有引用控制迭代次数的i 变量:

    timmy.pencolor("purple")
    
    for i in range(0,4):
    
        ...
    

    我们可以这样做:

    PEN_COLORS = ["purple", "red", "green", "orange"]
    
    for color in PEN_COLORS:
    
      timmy.pencolor(color)
    
      ...
    

    让颜色的数量控制迭代次数。

    【讨论】:

      【解决方案2】:

      在您开始循环 for i in range(0,4) 之后,您可以添加:

      if i == 0 : timmy.pencolor('NAMEOFCOLOR')
      if i == 1 : timmy.pencolor('NAMEOFCOLOR')
      if i == 2 : timmy.pencolor('NAMEOFCOLOR')
      if i == 3 : timmy.pencolor('NAMEOFCOLOR')
      

      【讨论】: