Python 有没有缩短这个时间的计划?

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

我是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.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()