【问题标题】:How to set a conditional statement within a for loop in Python?如何在 Python 的 for 循环中设置条件语句?
【发布时间】:2021-01-01 11:30:13
【问题描述】:

我在 python 中使用海龟创建简单的形状,渐变从白色开始到黑色结束,黑色是 0,0,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()

【问题讨论】:

  • 您可以将ifs 放在for 循环内。你试过什么?您具体需要哪些帮助?

标签: python for-loop conditional-statements turtle-graphics python-turtle


【解决方案1】:

在你的最终 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)

【讨论】:

    【解决方案2】:

    如果我们使颜色在迭代次数上减少 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2020-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多