如何在Python龟的每次迭代中增加pensize?

时间:2018-11-18 12:34:13

标签: python python-2.x turtle-graphics

我有一些代码可以使形状取决于输入的边数,但是我也希望它在每次迭代时自动增加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 :(得分:1)

我相信这符合您的描述-如果没有,请修改您的问题,以解释“每次迭代自动增加笔型”的含义:

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 ...语句的级联应该是一个字典,但是我要假设您在学习中还没有达到这些要求。我重新排列了代码,以便在乌龟窗口模糊控制台之前完成问答。