Как вы увеличиваете размер pensize на каждой итерации для черепахи Python? - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть код, который делает фигуры зависимыми от количества вводимых сторон, но я также хочу, чтобы он автоматически увеличивал размер pensize на каждой итерации, не запрашивая значения в консоли. Помогая мне, можете ли вы применить изменения к моему коду, потому что я действительно изо всех сил пытаюсь объединить чужой код в свой собственный. Вот мой код:

import turtle

wn = turtle.Screen() 
Mo = turtle.Turtle()

numsides = int(input("How many sides would you like your shape to have (3- 
8)?"))

if numsides == 3:
    shape_name = "triangle"
if numsides == 4:
    shape_name = "square"
if numsides == 5:
    shape_name = "pentagon"
if numsides == 6:
    shape_name = "hexagon"
if numsides == 7:
    shape_name = "heptagon"
if numsides == 8:
    shape_name = "octagon"


print("That'll be a " + shape_name + ".")

howbig = int(input("What size lines would you like: "))

for myMoves in range(numsides):
    Mo.forward(howbig)
    Mo.left(360/numsides) 

1 Ответ

0 голосов
/ 19 ноября 2018

Я полагаю, что это именно то, что вы описываете - если это не так, пожалуйста, измените ваш вопрос, чтобы объяснить, что означает "автоматически увеличивать размер pensize в каждой итерации":

from turtle import Screen, Turtle

numsides = int(input("How many sides would you like your shape to have (3 - 8)? "))

if numsides == 3:
    shape_name = "triangle"
elif numsides == 4:
    shape_name = "square"
elif numsides == 5:
    shape_name = "pentagon"
elif numsides == 6:
    shape_name = "hexagon"
elif numsides == 7:
    shape_name = "heptagon"
elif numsides == 8:
    shape_name = "octagon"

print("That'll be a", shape_name + ".")

howbig = int(input("What size lines would you like: "))

window = Screen()
turtle = Turtle()

for width, myMoves in enumerate(range(numsides), start=1):
    turtle.width(width)
    turtle.forward(howbig)
    turtle.left(360 / numsides)

turtle.hideturtle()

window.mainloop()

enter image description here

консоль говорит, сколько сторон вы хотели бы, чтобы ваша фигура имела (3 - 8)? 8 («Это будет», «восьмиугольник».)

Для Python 2 нам нужно внести некоторые изменения:

from turtle import Turtle, mainloop

numsides = int(raw_input("How many sides would you like your shape to have (3 - 8)? "))

if numsides == 3:
    shape_name = "triangle"
elif numsides == 4:
    shape_name = "square"
elif numsides == 5:
    shape_name = "pentagon"
elif numsides == 6:
    shape_name = "hexagon"
elif numsides == 7:
    shape_name = "heptagon"
elif numsides == 8:
    shape_name = "octagon"

print("That'll be a " + shape_name + ".")

howbig = int(raw_input("What size lines would you like: "))

turtle = Turtle()

width = 1

for myMoves in range(numsides):
    turtle.width(width)
    turtle.forward(howbig)
    turtle.left(360 / numsides)

    width += 1

turtle.hideturtle()

mainloop()

Каскад if ... elif ... elif ... утверждений должен быть словарём, но я собираюсь предположить, что вы еще не достигли тех, которые были в вашем обучении. Я изменил код так, чтобы вопросы и ответы были выполнены до того, как окно черепахи сможет скрыть консоль.

...