pythonturtle循环语句_如何打破Turtle图形Python中的无限循环
主要的问题是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中的无限循环相关推荐
- python中for无限循环_关于循环:在Python中从1循环到无穷大
在C语言中,我会这样做: 1 2 3 4int i; for (i = 0;; i++) if (thereIsAReasonToBreak(i)) break; 如何在Python中实现类似的功能? ...
- python中for无限循环_循环-在Python中从1循环到无穷大
循环-在Python中从1循环到无穷大 在C语言中,我会这样做: int i; for (i = 0;; i++) if (thereIsAReasonToBreak(i)) break; 如何在Py ...
- python正确的输入语句_手把手教你在python中如何使用while True语句
在学习过程中,经常能遇到采用while True的用法.下面以一个例子进行说明: 建立一个用户登录系统,用户输入用户名和密码,如果正确就可以进入系统. 1.我自己最开始的写法:d = {} #数据库字 ...
- 无限循环当然数c语言,c++ - C / C ++中的无限循环[关闭] - 堆栈内存溢出
每个人似乎都喜欢while (true) : 根据SLaks的说法 ,他们编译相同. 它并不快. 如果您真的关心,请使用您的平台的汇编程序输出进行编译,并查看. 没关系. 这永远不重要. 写下你喜欢的 ...
- python从小到大的顺序输出_「小白专栏」Python中使用for循环,为什么输出结果不是按顺序?...
欢迎各位小哥哥小姐姐阅读本的文章,对大家学习有帮助,请点赞加关注哦!!!!!!!!!! 您的点赞和关注将是我持续更新的动力呢.^v^ 有不懂的问题可以私聊我哦! 前言 如图,为什么输出的不是按Jen, ...
- python的for循环语句_干货丨Python的循环语句基础讲解!
我们知道计算机程序语言一般是按照顺序执行的,那么编程语言就提供了各种控制结构,允许更复杂的执行路径,其中循环语句的作用就是允许我们执行一个语句或语句组多次. 在Python中循环语句的类型主要有以下几 ...
- python中for循环语句格式_关于Python中的for循环控制语句
#第一个:求 50 - 100 之间的质数 import math for i in range(50, 100 + 1): for j in range(2, int(math.sqrt(i)) + ...
- python编程循环语句_循环语句—Python编程从入门到精通(5)
第6章.循环语句 在本书上一章的内容中,我们学习了实现条件判断功能的条件语句,让程序的执行顺序发生了变化.为了满足循环和跳转等功能,本章将详细讲解Python语言中循环语句的知识,主要包括for循环语 ...
- pythonfor循环语句1到7、不要4_【IT专家】关于Python中的for循环控制语句
本文由我司收集整编,推荐下载,如有疑问,请与我司联系 关于 Python 中的 for 循环控制语句 2010/06/14 500461 #第一个:求 50 - 100 之间的质数 import ma ...
最新文章
- jupyter安装与初探
- JPA 复杂查询 - Querydsl
- 面试处处碰壁,程序员“升值”好难呀!
- LeetCode 96不同的二叉搜索树95不同的二叉搜索树Ⅱ
- AI and logistics Patent
- AV1挑起的Codec之战
- php字符串赋值给变量,JavaScript-如何将一个PHP字符串安全赋值给Javascript变量(包含引号和换行符的)...
- 斗地主AI算法——第六章の牌型判断
- 浅析如何通过PHP类的反射来实现依赖注入
- Redis Bitmap 位图
- 表格列隐藏_WPS表格(Excel)基础编辑
- oracle数据库ora01012错误,Oracle自定义异常收集(二)
- c语言中常用数学符号,C语言入门知识:运算符
- wifi动不动就断开_笔记本Wifi上网经常间歇性断网的修复
- MySQL--通过mysqladmin命令修改密码提示:single quotes were not trimmed line client(Windows)
- 徐张生:三级分销不是传销,人人店已经占据行业绝对优势
- R语言︱SNA-社会关系网络 R语言实现专题(基础篇)(一)
- 关于ESP8266WIFI转串口的速率问题(含测试数据)
- 蓝图(blueprint)的理解和用法
- dropzone js video上传使用frame-grap.js生成缩略图