Python:如何使两个相等的部分列表在for循环中只使用每个列表的第一部分?
我正在尝试创建3个同样小的同心形状(三角形),并使用for循环(使用海龟图形)使每个形状具有不同的颜色。到目前为止,我可以制作这些形状,但我在用不同的颜色填充它们时遇到了极大的困难。下面的代码是我到目前为止所做的。有人能帮忙解决颜色问题吗Python:如何使两个相等的部分列表在for循环中只使用每个列表的第一部分?,python,python-3.x,list,Python,Python 3.x,List,我正在尝试创建3个同样小的同心形状(三角形),并使用for循环(使用海龟图形)使每个形状具有不同的颜色。到目前为止,我可以制作这些形状,但我在用不同的颜色填充它们时遇到了极大的困难。下面的代码是我到目前为止所做的。有人能帮忙解决颜色问题吗 lengths = [300, 200, 100] inner = ['red', 'dark blue', 'lime green'] for colouring in inner: begin_fill() fillcolor(colouring
lengths = [300, 200, 100]
inner = ['red', 'dark blue', 'lime green']
for colouring in inner:
begin_fill()
fillcolor(colouring)
for tri_length in lengths:
penup()
right(90)
forward(tri_length * 0.57)
pendown()
left(150)
forward(tri_length)
left(120)
forward(tri_length)
left(120)
forward(tri_length)
penup()
home()
hideturtle()
done()
所有文件:
import turtle
lengths = [300, 200, 100]
inner = ['red', 'dark blue', 'lime green']
for i in range(0, len(lengths)):
turtle.begin_fill()
turtle.color(inner[i])
turtle.penup()
turtle.right(90)
turtle.forward(lengths[i] * 0.57)
turtle.pendown()
turtle.left(150)
turtle.forward(lengths[i])
turtle.left(120)
turtle.forward(lengths[i])
turtle.left(120)
turtle.forward(lengths[i])
turtle.penup()
turtle.home()
turtle.hideturtle()
turtle.done()
编辑
import turtle
lengths = [300, 200, 100]
inner = ['red', 'dark blue', 'lime green']
for i, j in zip(lengths, inner):
turtle.begin_fill()
turtle.color(j)
turtle.penup()
turtle.right(90)
turtle.forward(i * 0.57)
turtle.pendown()
turtle.left(150)
turtle.forward(i)
turtle.left(120)
turtle.forward(i)
turtle.left(120)
turtle.forward(i)
turtle.penup()
turtle.home()
turtle.hideturtle()
turtle.done()
对于范围内的i(len(someseq)):someseq[i]
是Python中的反模式。Python提供了直接迭代、并行迭代(通过zip
)和带索引的迭代(通过enumerate
);在99.9%的情况下,您需要这三个选项中的一个,而不是在范围内循环。