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

2024-05-15 08:58:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我本想用图形.py在python的图形窗口中。 我这里的代码是非常重复的,我需要把它变成一个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)

Tags: 代码py图形l1forlineredwin
2条回答

至少:

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列表的问题。你知道吗

这应该起作用:

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)

您也可以在这里使用函数。我把这个留给你。你知道吗

相关问题 更多 >