如何要求用户输入在python乌龟中绘制形状的数量?

时间:2019-05-25 05:30:40

标签: python turtle-graphics

编写一个程序,该程序使用乌龟图形绘制具有共同起点(顶点)的多个大小递增的等边三角形。该程序要求用户提供初始边长,两个连续三角形之间的增加以及要绘制的三角形总数。用户输入side = 50,increment = 20和三角形数= 5

时的输出示例
import turtle
paper = turtle.Screen()
pen = turtle.Turtle()

for x in range(3):
    pen.forward(20)
    pen.left(120)


for x in range(3):
    pen.forward(40)
    pen.left(120)


for x in range(3):
    pen.forward(60)
    pen.left(120)

for x in range(3):
    pen.forward(80)
    pen.left(120)

for x in range(3):
    pen.forward(100)
    pen.left(120)

如何要求用户输入?

2 个答案:

答案 0 :(得分:0)

这就是您想要的:

import turtle

paper = turtle.Screen()
pen = turtle.Turtle()
person = input('Enter your initial side length: ')
triangle = input('Enter the desired amount of triangles: ')

for k in range(int(triangle)):
    for x in range(3):
        pen.forward((k+1)*float(person))
    pen.left(120)

现在应该会在控制台中显示一个文本,询问边距,然后键入一个数字,您的三角形就会出现。

编辑: 忘了,python以k = 0开头。因此将其更改为(k + 1)* float(person)。这应该给您以下图像: enter image description here

答案 1 :(得分:0)

如果您正在运行Python 3,则有一种新的解决方法。最新的乌龟库添加了numinput(title, prompt, default=None, minval=None, maxval=None) 方法:

textinput()

因此,您可以使用GUI而不是控制台进行提示。 (还有一个类似的from turtle import Screen, Pen paper = Screen() length = paper.numinput("Triangles", "Enter initial side length:", default=40, minval=10, maxval=70) increase = paper.numinput("Triangles", "Enter size increase:", default=30, minval=10, maxval=50) # numinput() returns a float but we need an int for range() triangles = int(paper.numinput("Triangles", "Enter the desired number of triangles", default=3, minval=1, maxval=5)) pen = Pen() for triangle in range(triangles): for _ in range(3): pen.forward(length + triangle * increase) pen.left(120) paper.exitonclick() 方法。)使用这种方法的代码如下:

{{1}}