如何使用for循环使我的代码看起来不那么重复?

时间:2017-12-04 14:24:20

标签: python for-loop

我的意思是使用python中的graphics.py在图形窗口上绘制线条。 我的代码在这里是非常重复的,我需要把它变成一个for循环,我不知道该怎么做。

win=GraphWin("Patch1", 100, 100)
win.setBackground("white")
l1=Line(Point(0,80),Point(20,100))
l1.setFill("red")
l1.draw(win)
l2=Line(Point(0,60),Point(40,100))
l2.setFill("red")
l2.draw(win)
l3=Line(Point(0,40),Point(60,100))
l3.setFill("red")
l3.draw(win)
l4=Line(Point(0,20),Point(80,100))
l4.setFill("red")
l4.draw(win)
l5=Line(Point(0,0),Point(100,100))
l5.setFill("red")
l5.draw(win)

2 个答案:

答案 0 :(得分:0)

至少:

for p1, p2 in [(Point(0,80), Point(20,100)), (Point(0,60), Point(40,100), ...]:
    l = Line(p1, p2)
    l.setFill("red")
    l.draw(win)

唯一不同的是用于生成线的确切点;其余部分可以抽象到循环体中,如图所示。

我将其作为练习,以明确如何明确生成Points列表。

答案 1 :(得分:0)

这应该有效:

win = GraphWin("Patch1", 100, 100)
win.setBackground("white")
for i in range(20,101,20):
    l = Line(Point(0,100-i),Point(i,100))
    l.setFill("red")
    l.draw(win)

您也可以在此处使用功能。我会留给你的。