主要的问题是while循环持续了无限长的时间。在#This is infinite loop because 'side' iterator is ALWAYS in the sequence returned from range function

while side in range(n):

而且,在目前的结构中

在你的代码中,这个函数什么也不做,只浪费空间(你可能从shell调用它

可以理解)。还有一些多余的人,我们也可以搭顺风车。让我们设计你的脚本,让乌龟

可以从创建的函数控制多边形。希望你能看到海龟模块有多强大

当递归和正确使用函数时可以使用。在

让我们先看一下多边形函数的去极化。我觉得你的脚本应该围绕

多边形函数除了函数的自然便利性外,还与脚本中包含的参数有关。

尽管根据脚本的隐含设计不需要它们(至少在这里),但是包含它们意味着:You

用于这个函数来控制海龟,或者B:您不太了解函数/参数是如何工作的。到

提供更多的学习经验,我们绝对应该把这个脚本集中在这个函数上。在

^{pr2}$

现在就把那些帕拉马特干掉。稍后我们将在嵌套函数中返回它们。接下来,我们将添加其余的

将脚本转换为多边形函数。因为n和length变量收集输入,所以它呈现参数

对于多边形函数没用。这不是一个非此即彼的场景,有了一些控制流,如果你

通缉犯。在我们将脚本添加到多边形函数之前,我想指出您是如何声明两次变量的

第二次你把它们转换成整数。Python允许我们在第一次声明时将它们嵌套在int()函数中

他们。在n = input("Enter num ")

n = int(n) #< -instead of these 1st 2 lines, do the 3rd line below.

n = int(input("Enter num: ")) #< 1 line of code that is equally as readable as 2.

在修改了两个n&length变量之后,让我们将所有内容添加到我们的多边形函数中(除了while循环,

处理掉所有与此相关的事情)。请注意,屏幕、形状和模式功能已移动到

可变去极化。这样,当用户输入信息时,turtle窗口不会跳到用户面前

进入程序。在def polygon():

n = int(input("Enter number of sides: "))

print("You entered %d sides.\n"%(n))

length = int(input("Enter length of sides: "))

print("Your sides are %d pixels long.\n"%(length))

Screen()

shape('turtle')

mode('logo')

现在我们有了一个干净易读的函数,让我们处理创建多边形的业务。为此我们将使用

同时使用递归和参数的嵌套函数。我们叫它“活套”。原因是你

赋值是使有边的多边形数量相等(换句话说,多边形数==n)。活套将

为我们实现这个目标。首先,它将把在多边形中建立的变量作为参数。那我们就用你以前的

内部循环。在def looper(n,length,loops=n): #notice the 'loops=n' default parameter, this allows to keep track of it recursively

if (loops > 0): #As long as loops is greater than zero this functin will repeat itself as many times as 'n'

for side in range(n):

forward(length)

right(360/n)

penup()

#penup after the forloop so that the turtle will not draw while searching for next polygon space

setposition(xcor()+length,ycor()+length) #xcor() and ycor() return the current position of the turtle

#notice that we add it to the length of of our sides, this is how the turtle will space out the polys.

#I would even experiment with things like setposition(xcor()+(length*2),ycor()+(length*2))

pendown() #after turtle find the position we we use pendown() to prepare to draw again

loops -= 1 #this decrements the loops parameter so that the functin will not call itself infinitely

#(stack overflow)

looper(n,length,loops) #recursively call our looper function again

return #I personally always return the end of recursive functions to be safe, this may be redundant

本质上,递归是指函数在自身内部反复调用自身以执行任务。以确保

最后,我们告诉程序:“只有当有任何循环时才画多边形”在函数执行之后

我们的职责是告诉它“将循环减去1”,以确保循环最终为零。这和回报

声明(大致相当于您所说的“中断”)将确保我们不会执行任何任务

无数次。此代码的最后一步是确保实际调用polygon函数

因此,您的代码将运行,并调用looper(n,length)和多边形函数的结尾,原因是相同的。在

您的代码应该如下所示:from turtle import *

def polygon():

n = int(input("Enter number of sides: "))

print("You entered %d sides.\n"%(n))

length = int(input("Enter length of sides: "))

print("Your sides are %d pixels long.\n"%(length))

Screen()

shape('turtle')

mode('logo')

def looper(n,length,loops=n):

if (loops > 0):

for side in range(n):

forward(length)

right(360/n)

penup()

setposition(xcor()+length,ycor()+length)

pendown()

loops -= 1

looper(n,length,loops)

return

looper(n,length)

polygon()

我几乎为你完成了任务,但如果你学到了一两件事,那么我的目标就实现了。我希望我能帮助任何人!在

pythonturtle循环语句_如何打破Turtle图形Python中的无限循环相关推荐

  1. python中for无限循环_关于循环:在Python中从1循环到无穷大

    在C语言中,我会这样做: 1 2 3 4int i; for (i = 0;; i++) if (thereIsAReasonToBreak(i)) break; 如何在Python中实现类似的功能? ...

  2. python中for无限循环_循环-在Python中从1循环到无穷大

    循环-在Python中从1循环到无穷大 在C语言中,我会这样做: int i; for (i = 0;; i++) if (thereIsAReasonToBreak(i)) break; 如何在Py ...

  3. python正确的输入语句_手把手教你在python中如何使用while True语句

    在学习过程中,经常能遇到采用while True的用法.下面以一个例子进行说明: 建立一个用户登录系统,用户输入用户名和密码,如果正确就可以进入系统. 1.我自己最开始的写法:d = {} #数据库字 ...

  4. 无限循环当然数c语言,c++ - C / C ++中的无限循环[关闭] - 堆栈内存溢出

    每个人似乎都喜欢while (true) : 根据SLaks的说法 ,他们编译相同. 它并不快. 如果您真的关心,请使用您的平台的汇编程序输出进行编译,并查看. 没关系. 这永远不重要. 写下你喜欢的 ...

  5. python从小到大的顺序输出_「小白专栏」Python中使用for循环,为什么输出结果不是按顺序?...

    欢迎各位小哥哥小姐姐阅读本的文章,对大家学习有帮助,请点赞加关注哦!!!!!!!!!! 您的点赞和关注将是我持续更新的动力呢.^v^ 有不懂的问题可以私聊我哦! 前言 如图,为什么输出的不是按Jen, ...

  6. python的for循环语句_干货丨Python的循环语句基础讲解!

    我们知道计算机程序语言一般是按照顺序执行的,那么编程语言就提供了各种控制结构,允许更复杂的执行路径,其中循环语句的作用就是允许我们执行一个语句或语句组多次. 在Python中循环语句的类型主要有以下几 ...

  7. python中for循环语句格式_关于Python中的for循环控制语句

    #第一个:求 50 - 100 之间的质数 import math for i in range(50, 100 + 1): for j in range(2, int(math.sqrt(i)) + ...

  8. python编程循环语句_循环语句—Python编程从入门到精通(5)

    第6章.循环语句 在本书上一章的内容中,我们学习了实现条件判断功能的条件语句,让程序的执行顺序发生了变化.为了满足循环和跳转等功能,本章将详细讲解Python语言中循环语句的知识,主要包括for循环语 ...

  9. pythonfor循环语句1到7、不要4_【IT专家】关于Python中的for循环控制语句

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 关于 Python 中的 for 循环控制语句 2010/06/14 500461 #第一个:求 50 - 100 之间的质数 import ma ...

最新文章

  1. jupyter安装与初探
  2. JPA 复杂查询 - Querydsl
  3. 面试处处碰壁,程序员“升值”好难呀!
  4. LeetCode 96不同的二叉搜索树95不同的二叉搜索树Ⅱ
  5. AI and logistics Patent
  6. AV1挑起的Codec之战
  7. php字符串赋值给变量,JavaScript-如何将一个PHP字符串安全赋值给Javascript变量(包含引号和换行符的)...
  8. 斗地主AI算法——第六章の牌型判断
  9. 浅析如何通过PHP类的反射来实现依赖注入
  10. Redis Bitmap 位图
  11. 表格列隐藏_WPS表格(Excel)基础编辑
  12. oracle数据库ora01012错误,Oracle自定义异常收集(二)
  13. c语言中常用数学符号,C语言入门知识:运算符
  14. wifi动不动就断开_笔记本Wifi上网经常间歇性断网的修复
  15. MySQL--通过mysqladmin命令修改密码提示:single quotes were not trimmed line client(Windows)
  16. 徐张生:三级分销不是传销,人人店已经占据行业绝对优势
  17. R语言︱SNA-社会关系网络 R语言实现专题(基础篇)(一)
  18. 关于ESP8266WIFI转串口的速率问题(含测试数据)
  19. 蓝图(blueprint)的理解和用法
  20. dropzone js video上传使用frame-grap.js生成缩略图

热门文章

  1. 哈尔滨金融学院计算机系宿舍,哈尔滨金融学院宿舍怎么样
  2. java笔试面试题_Java面试笔试题大全
  3. 百度地图3.6android点击定位,188金宝搏官方-官网首页
  4. 企业微信最新版HOOK协议实现开源
  5. 洛谷—— P1775 古代人的难题_NOI导刊2010提高(02)
  6. anroid边框阴影-圆角阴影-渐变阴影
  7. mysql update锁表_MySQL执行update语句是锁行还是锁表分析
  8. B站高管解读财报:增长仍是最重要工作 2023年要实现4亿MAU
  9. Unity中相机跟随人物移动
  10. 标注工具-马克鳗的使用