python - 您如何在 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)
解决方案
我相信这符合您的描述-如果没有,请修改您的问题以解释“在每次迭代中自动增加 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 ...
陈述应该是一本字典,但我假设你在学习中还没有达到那些。我重新排列了代码,以便在海龟窗口遮挡控制台之前完成问答。
推荐阅读
- node.js - 如何使用 Multer 存储图像
- ansible - Ansible - 提示确认运行任务并由多个主机共享事实
- python - 如何更好地耦合我的课程并处理动态属性历史
- arrays - 获取变量中的数组项
- node.js - Puppeteer 没有点击带有文本的按钮
- javascript - 如何在同一页面内将值从 Js 传递到 PHP
- docker - 第二个node.js无法连接到docker compose中的mysql
- javascript - 系统未在角度 13 中使用动态导入定义
- css - Blazor 根据请求路径设置 CSS 文件
- c# - 如何使用 gmail API 的查询?设置属性 Q 似乎没有效果