主要的问题是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. 2021年大数据ELK(五):Elasticsearch中的核心概念
  2. 用python编写脚本实现备份文件
  3. 鸿蒙和安卓实际体验,鸿蒙2.0,你收到推送了么?告诉你实际体验!
  4. Docker中启动、终止和删除容器命令
  5. 强制浏览器使用兼容模式,Web.config,httpProtocol
  6. 使用神经网络进行稀疏采样_使用python+opencv进行神经网络迁移
  7. Flowable springboot项目自定义中文字体
  8. 在Delphi中获取和修改文件的时间
  9. VS连接SQL ,Windows登录SQL 语句
  10. NLP自然语言理解-中科院(宗成庆) P1~P4
  11. 组态王串口服务器虚拟串口,串口服务器通过modbus TCP连接组态王实例
  12. Python数组并集交集补集代码实例
  13. 修炼你的《九阳神功》行走江湖
  14. 手机电池续航一天不如一天?
  15. 等了十年的微信功能终于成真
  16. 电子商务经过了十多年的发展 企业建站网站与域名选择的重要性
  17. 软件测试---BUG的生命周期
  18. 微型计算机控制技术 西安交大,西安交通大学18年9月课程考试《计算机控制技术》作业考核试题满分...
  19. Verilog VHDL三种建模描述方式——2选1数据选择器
  20. 百度失去中国第一大桌面搜索引擎宝座

热门文章

  1. 小企业如何挑选在线客服系统
  2. python取整的几种方法_Python取整的方法
  3. Pixel XL刷机ROOT教程
  4. html响应式页面图片怎么自适应,自适应设计:自适应图片的完整教程
  5. android 停止app 指令,使用adb命令停止APP后台进程的方法
  6. 当代市场营销方式有哪些?
  7. ES数据库的搭建(包含踩坑记录)
  8. 追女生攻略:吸引女生的几个技巧点是什么?
  9. 剖析《最后生还者 第二部》叙事系统的成就与败笔(下)
  10. 本周大新闻|John Carmack从Meta离职,OPPO发布双目AR一体机仅38g