Python 在这里,如何使用for循环使代码看起来不那么重复?

Python 在这里,如何使用for循环使代码看起来不那么重复?,python,for-loop,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") l

我打算在图形窗口中使用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)
至少:

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)
唯一不同的是用于生成直线的精确点;其余部分可以抽象到循环体中,如图所示

我把它作为一个练习,以找出如何生成
点列表的方法,不那么明确。

这应该可以:

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)

您也可以在此处使用函数。这就交给你了。

这需要一个函数。你试过了吗<代码>点(0,80-i*20),点(20+i*20100)
作为循环的一部分。为什么不使用函数?如何使用相同的方法在图形窗口上创建十字交叉设计?