Python 有没有缩短这个时间的计划?
我是python新手,在隔离区开始做只是为了好玩。前几天我正在编写一些Python代码,决定用turtle程序创建一个图像。我在这里看到了很多重复,所以我想知道是否有办法缩短它。代码如下:Python 有没有缩短这个时间的计划?,python,turtle-graphics,Python,Turtle Graphics,我是python新手,在隔离区开始做只是为了好玩。前几天我正在编写一些Python代码,决定用turtle程序创建一个图像。我在这里看到了很多重复,所以我想知道是否有办法缩短它。代码如下: import turtle wn = turtle.Screen() House = turtle.Turtle() House.forward(150) House.left(90) House.forward(110) House.left(45) House.forward(110) House.le
import turtle
wn = turtle.Screen()
House = turtle.Turtle()
House.forward(150)
House.left(90)
House.forward(110)
House.left(45)
House.forward(110)
House.left(90)
House.forward(110)
House.left(45)
House.forward(110)
wn.mainloop()
谢谢 对于这个显式示例,您可以尝试以下方法:
House.forward(150)
for iter in range(2):
for left_pos in [90,45]:
House.left(left_pos)
House.forward(110)
wn.mainloop()
您可以执行以下操作:
left_vals = [90, 45, 90, 45]
House.forward(150)
for v in left_vals:
House.left(v)
House.forward(110)
您可以始终使用for循环来减少代码重复。如果存在模式,则可以使用函数而不是将值放入列表中。例如,在这里,您似乎按顺序调用90和45。所以你可以这样做:
House.forward(150)
for i in range(4):
House.left(45 * (2 - i%2))
House.forward(110)
首先,让我们更正初始的
forward()
距离以匹配屋顶尺寸。然后程序将相同的left()
和forward()
运动分解为四次重复,角度交替:
from turtle import Screen, Turtle
turtle = Turtle()
turtle.forward(110 * 2 ** 0.5)
angle = 90
for _ in range(4):
turtle.left(angle)
turtle.forward(110)
angle = 135 - angle
screen = Screen()
screen.mainloop()
有件事:
from turtle import Screen, Turtle
turtle = Turtle()
turtle.forward(110 * 2 ** 0.5)
angle = 90
for _ in range(4):
turtle.left(angle)
turtle.forward(110)
angle = 135 - angle
screen = Screen()
screen.mainloop()
import turtle
wn = turtle.Screen()
House = turtle.Turtle()
for n in [(150,90),(110,45),(110,90),(110,45)]:
House.forward(n[0])
House.left(n[1])
House.forward(110)
wn.mainloop()