非常感谢社区到目前为止提供的帮助,但我遇到了另一个绊脚石。
我正在尝试运行一个绘制三角形的脚本,然后按照输入值的指示重复多次,每个输入值都大于前一个,即如果4输入则第一个有侧面10,第二个20等等。
当它被限制在一定数量的值时,我可以实现它。但是,当我使用for循环时,它会变得疯狂。
我希望社区可以让我告诉我哪里出错了,因为必须有一个比我所取得的更优雅的解决方案。
from turtle import *
levels = int(input("how many triangles do you want? "))
for triangles in range(1, levels + 1):
if countList == 1:
goto(0,0)
forward((levels*10)/2)
left(120)
forward(levels*10)
left(120)
forward(levels*10)
left(120)
forward((levels*10)/2)
else:
forward((levels * 10) / 2)
left(120)
forward(levels * 10)
left(120)
forward(levels * 10)
left(120)
forward((levels * 10) / 2)
right(60)
forward(levels * 10)
right(120)
forward(levels * 10)
right(120)
forward(levels * 10)
right(120)
forward(levels * 10)
right(120)
forward((levels * 10)/2)
所以任何帮助都会很棒。
答案 0 :(得分:0)
这里有一些简单的代码,我认为它们与您想要的类似(Python 3.6.5):
import turtle
alex = turtle.Turtle()
levels = int(input("How many triangles good sir?: "))
for i in range(1, levels + 1):
alex.forward(20*i)
alex.left(120)
alex.forward(20*i)
alex.left(120)
alex.forward(20*i)
alex.left(120)
turtle.mainloop()
对于循环的每次迭代,我将我的乌龟移动距离乘以i
。第一个三角形的边长为20(20 * 1)个单位,第二个边长为40(20 * 2)个单位长,然后为60(20 * 3),依此类推。
如果我理解你的问题,你应该能够解决这个例子。
答案 1 :(得分:0)
以下是我如何解释您的问题:您希望用户输入应绘制的三角形数量。第一个三角形的长度应为10,第二个长度为20 e.t.c。
查看你的代码。变量级别仅存储应绘制的三角形数量。变量三角形随循环的每次迭代而变化。变量 countList 尚未在任何地方定义。
以下是代码如何变化以实现所需的结果:
from turtle import *
levels = int(input("how many triangles do you want? "))
for triangles in range(1, levels + 1):
forward((triangles * 10) / 2)
left(120)
forward(triangles * 10)
left(120)
forward(triangles * 10)
left(120)
forward((triangles * 10) / 2)
Screen().exitonclick()
由于三角形是循环的每次迭代时发生的变化,因此需要使用它来确定要绘制的线的大小。此外, if 语句是不必要的,因为区分第一个三角形的代码与其他三角形的代码是:
goto(0,0)
这个函数调用也是不必要的,因为乌龟是在0,0点初始化的,在画完一个完整的三角形后,它最终会在同一个位置。
屏幕()。exitonclick()就是确保窗口不会立即关闭循环终止。