首页 > 解决方案 > 您如何在 Python 乌龟的每次迭代中增加 pensize?

问题描述

我有代码使形状取决于输入的边数,但我也希望它在每次迭代时自动增加 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) 

标签: pythonpython-2.xturtle-graphics

解决方案


我相信这符合您的描述-如果没有,请修改您的问题以解释“在每次迭代中自动增加 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()

在此处输入图像描述

控制台说你希望你的形状有多少边(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 ...陈述应该是一本字典,但我假设你在学习中还没有达到那些。我重新排列了代码,以便在海龟窗口遮挡控制台之前完成问答。


推荐阅读