Как попросить пользовательский ввод нарисовать количество фигур в черепахе Python? - PullRequest
0 голосов
/ 25 мая 2019

Напишите программу, которая использует графику черепахи для рисования нескольких равносторонних треугольников увеличивающегося размера с общей начальной точкой (вершиной).Программа запрашивает у пользователя начальную длину стороны, увеличение между двумя последовательными треугольниками и общее количество треугольников для рисования.Пример вывода, когда пользователь входит в сторону = 50, увеличение = 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 голосов
/ 26 мая 2019

Если вы работаете с Python 3, есть новый способ сделать это. Более поздняя библиотека черепах добавляет метод numinput():

numinput(title, prompt, default=None, minval=None, maxval=None)

Таким образом, вы можете делать подсказки, используя графический интерфейс вместо консоли. (Существует также похожий textinput() метод.) Вот как ваш код может выглядеть при таком подходе:

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()
0 голосов
/ 25 мая 2019

Вот что вы хотите:

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)

Теперь должен появиться текст в консоли с просьбой указать длину стороны, и, набрав число, ваши треугольники должны появиться.

Edit: Забыл, что питон начинается с k = 0. Следовательно, изменили его на (k + 1) * float (человек). Это должно дать вам следующее изображение: enter image description here

...