Python 在这里,如何使用for循环使代码看起来不那么重复?
我打算在图形窗口中使用python中的graphics.py绘制线条。 我这里的代码非常重复,我需要把它变成一个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
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)
作为循环的一部分。为什么不使用函数?如何使用相同的方法在图形窗口上创建十字交叉设计?