如何在Python中的for循环中设置条件语句?

问题描述

我正在python中使用turtle来创建简单的形状,这些形状的渐变从白色开始到黑色结束,黑色为0,0。我目前设置的方式是,它将在嵌套循环中继续减去零。我希望我的代码在颜色等于或小于0,0时将其打印为黑色。如果有人可以给我指示和提示而又不直接给我解决方案,我将不胜感激。谢谢!

a = int(input("Enter int angle:"))
q = int(input("Enter int length:"))
print("Click turtle screen to exit...")
r=1
g=1
b=1
import turtle
wn = turtle.Screen()
wn.bgcolor("white")
alex = turtle.Turtle()
alex.speed(500)
alex.pencolor("white")
for i in range (q):      
   alex.forward(i)
   alex.left(a)
   for c in range (q):
      alex.pencolor(r,g,b)
      r=(r-.0001)
      g=(g-.0001)
      b=(b-.0001)

    
wn.exitonclick()

解决方法

在您的最终for循环中,您应该拥有

for c in range (q):
      alex.pencolor(r,g,b)
      if condition (color is black or less than black):
          result (print black)
      else:
          r=(r-.0001)
          g=(g-.0001)
          b=(b-.0001)
,

如果我们在迭代次数上使颜色递减1,那么在上一次迭代中颜色应达到黑色:

from turtle import Screen,Turtle

screen = Screen()

angle = screen.numinput("Angle","Enter angle: ",default=110,minval=1,maxval=359)
length = int(screen.numinput("Length","Enter integer length: ",default=75,minval=10,maxval=200))

gray = 1.0

turtle = Turtle()
turtle.speed('fastest')

for _ in range(length):
    turtle.pencolor(gray,gray,gray)
    turtle.forward(length)
    turtle.left(angle)

    gray = gray - 1.0 / length

screen.exitonclick()

但是,如果那仍然给您带来问题,则可以将其包装在max()中:

    gray = max(0,gray - 1.0 / length)