鱼C论坛

 找回密码
 立即注册
查看: 1781|回复: 9

[已解决]各位大佬,这个为什么错了呀,怎么修改呢

[复制链接]
发表于 2021-3-11 11:04:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import turtle
turtle.setup(800,800)
turtle.pensize(5)
turtle.pencolor('green')
turtle.speed('fastest')
turtle.penup()
turtle.goto(50,-200)
turtle.pendown()
turtle.fillcolor('green')
turtle.begin_fill()
turtle.fd(200)
turtle.seth(130)
turtle.fd(220)
turtle.rt(130)
turtle.fd(120)
turtle.seth(130)
turtle.fd(200)
turtle.rt(130)
turtle.fd(100)
turtle.seth(130)
turtle.fd(300)
turtle.lt(100)
turtle.fd(300)
turtle.lt(130)
turtle.fd(100)
turtle.rt(130)
turtle.fd(200)
turtle.lt(130)
turtle.fd(120)
turtle.rt(130)
turtle.fd(220)
turtle.lt(130)
turtle.fd(200)
turtle.rt(90)
turtle.fd(100)
turtle.lt(90)
turtle.fd(85)
turtle.lt(90)
turtle.fd(100)
turtle.end_fill()
turtle.penup()
turtle.goto(260,-200)#右下第一个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(244,-28)#右边第二个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(210,130)#右边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-180,130)#左边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-214,-28)#左边第二个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(-230,-200)#左边第一个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-5,325)#最上面的星星
turtle.seth(80)
turtle.pendown()
turtle.fillcolor('tomato')
turtle.begin_fill()
turtle.pencolor('tomato')
while True:
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    if abs(pos())<1:
        break
end_fill()
最佳答案
2021-3-11 12:02:03
guhusf 发表于 2021-3-11 11:42
最上面画笔还是会一直循环

一直不满足条件,不会跳出,这里类似于死循环,可以加个print(abs(turtle.pos()))来监控
import turtle
turtle.setup(800,800)
turtle.pensize(5)
turtle.pencolor('green')
turtle.speed('fastest')
turtle.penup()
turtle.goto(50,-200)
turtle.pendown()
turtle.fillcolor('green')
turtle.begin_fill()
turtle.fd(200)
turtle.seth(130)
turtle.fd(220)
turtle.rt(130)
turtle.fd(120)
turtle.seth(130)
turtle.fd(200)
turtle.rt(130)
turtle.fd(100)
turtle.seth(130)
turtle.fd(300)
turtle.lt(100)
turtle.fd(300)
turtle.lt(130)
turtle.fd(100)
turtle.rt(130)
turtle.fd(200)
turtle.lt(130)
turtle.fd(120)
turtle.rt(130)
turtle.fd(220)
turtle.lt(130)
turtle.fd(200)
turtle.rt(90)
turtle.fd(100)
turtle.lt(90)
turtle.fd(85)
turtle.lt(90)
turtle.fd(100)
turtle.end_fill()
turtle.penup()
turtle.goto(260,-200)#右下第一个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(244,-28)#右边第二个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(210,130)#右边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-180,130)#左边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-214,-28)#左边第二个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(-230,-200)#左边第一个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-5,325)#最上面的星星
turtle.seth(80)
turtle.pendown()
turtle.fillcolor('tomato')
turtle.begin_fill()
turtle.pencolor('tomato')
while True:
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    print(abs(turtle.pos()))
    if abs(turtle.pos())<1:
        break
turtle.end_fill()

报错界面

报错界面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-11 11:06:37 | 显示全部楼层
pos没有定义,很明显啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-11 11:17:48 | 显示全部楼层
巴巴鲁 发表于 2021-3-11 11:06
pos没有定义,很明显啊

怎么定义啊,这些程序都是照着书抄的,还不会自己写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 11:24:23 | 显示全部楼层
pos()改成turtle.pos()
这是turtle库的pos函数:abs(pos())<1: 可理解为 画笔所处位置的坐标,距离原点(0,0)的距离的绝对值小于1,顾名思义就是用来查看 画笔经过若干次循环后 是否回到原点,回到原点即为真(True)。
若回到原点,便可用 break 跳出循环,使画笔停止循环运动。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 11:31:31 | 显示全部楼层
import turtle
turtle.setup(800,800)
turtle.pensize(5)
turtle.pencolor('green')
turtle.speed('fastest')
turtle.penup()
turtle.goto(50,-200)
turtle.pendown()
turtle.fillcolor('green')
turtle.begin_fill()
turtle.fd(200)
turtle.seth(130)
turtle.fd(220)
turtle.rt(130)
turtle.fd(120)
turtle.seth(130)
turtle.fd(200)
turtle.rt(130)
turtle.fd(100)
turtle.seth(130)
turtle.fd(300)
turtle.lt(100)
turtle.fd(300)
turtle.lt(130)
turtle.fd(100)
turtle.rt(130)
turtle.fd(200)
turtle.lt(130)
turtle.fd(120)
turtle.rt(130)
turtle.fd(220)
turtle.lt(130)
turtle.fd(200)
turtle.rt(90)
turtle.fd(100)
turtle.lt(90)
turtle.fd(85)
turtle.lt(90)
turtle.fd(100)
turtle.end_fill()
turtle.penup()
turtle.goto(260,-200)#右下第一个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(244,-28)#右边第二个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(210,130)#右边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-180,130)#左边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-214,-28)#左边第二个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(-230,-200)#左边第一个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-5,325)#最上面的星星
turtle.seth(80)
turtle.pendown()
turtle.fillcolor('tomato')
turtle.begin_fill()
turtle.pencolor('tomato')
while True:
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    if abs(turtle.pos())<1:
        break
turtle.end_fill()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-11 11:42:54 | 显示全部楼层

最上面画笔还是会一直循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-11 11:44:24 | 显示全部楼层
巴巴鲁 发表于 2021-3-11 11:24
pos()改成turtle.pos()
这是turtle库的pos函数:abs(pos())

谢谢大佬,但是加了break还是会一直循环啊
66666.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 11:48:05 | 显示全部楼层
guhusf 发表于 2021-3-11 11:44
谢谢大佬,但是加了break还是会一直循环啊

我觉得挺好看的,动态效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 12:02:03 | 显示全部楼层    本楼为最佳答案   
guhusf 发表于 2021-3-11 11:42
最上面画笔还是会一直循环

一直不满足条件,不会跳出,这里类似于死循环,可以加个print(abs(turtle.pos()))来监控
import turtle
turtle.setup(800,800)
turtle.pensize(5)
turtle.pencolor('green')
turtle.speed('fastest')
turtle.penup()
turtle.goto(50,-200)
turtle.pendown()
turtle.fillcolor('green')
turtle.begin_fill()
turtle.fd(200)
turtle.seth(130)
turtle.fd(220)
turtle.rt(130)
turtle.fd(120)
turtle.seth(130)
turtle.fd(200)
turtle.rt(130)
turtle.fd(100)
turtle.seth(130)
turtle.fd(300)
turtle.lt(100)
turtle.fd(300)
turtle.lt(130)
turtle.fd(100)
turtle.rt(130)
turtle.fd(200)
turtle.lt(130)
turtle.fd(120)
turtle.rt(130)
turtle.fd(220)
turtle.lt(130)
turtle.fd(200)
turtle.rt(90)
turtle.fd(100)
turtle.lt(90)
turtle.fd(85)
turtle.lt(90)
turtle.fd(100)
turtle.end_fill()
turtle.penup()
turtle.goto(260,-200)#右下第一个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(244,-28)#右边第二个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(210,130)#右边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-180,130)#左边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-214,-28)#左边第二个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(-230,-200)#左边第一个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-5,325)#最上面的星星
turtle.seth(80)
turtle.pendown()
turtle.fillcolor('tomato')
turtle.begin_fill()
turtle.pencolor('tomato')
while True:
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    print(abs(turtle.pos()))
    if abs(turtle.pos())<1:
        break
turtle.end_fill()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 12:04:04 | 显示全部楼层
或者你可以修改跳出条件,闪十下就跳出循环
import turtle
turtle.setup(800,800)
turtle.pensize(5)
turtle.pencolor('green')
turtle.speed('fastest')
turtle.penup()
turtle.goto(50,-200)
turtle.pendown()
turtle.fillcolor('green')
turtle.begin_fill()
turtle.fd(200)
turtle.seth(130)
turtle.fd(220)
turtle.rt(130)
turtle.fd(120)
turtle.seth(130)
turtle.fd(200)
turtle.rt(130)
turtle.fd(100)
turtle.seth(130)
turtle.fd(300)
turtle.lt(100)
turtle.fd(300)
turtle.lt(130)
turtle.fd(100)
turtle.rt(130)
turtle.fd(200)
turtle.lt(130)
turtle.fd(120)
turtle.rt(130)
turtle.fd(220)
turtle.lt(130)
turtle.fd(200)
turtle.rt(90)
turtle.fd(100)
turtle.lt(90)
turtle.fd(85)
turtle.lt(90)
turtle.fd(100)
turtle.end_fill()
turtle.penup()
turtle.goto(260,-200)#右下第一个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(244,-28)#右边第二个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(210,130)#右边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-180,130)#左边第三个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-214,-28)#左边第二个圆
turtle.pendown()
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.pencolor('yellow')
turtle.circle(10,360)
turtle.penup()
turtle.goto(-230,-200)#左边第一个圆
turtle.pendown()
turtle.circle(10,360)
turtle.end_fill()
turtle.penup()
turtle.goto(-5,325)#最上面的星星
turtle.seth(80)
turtle.pendown()
turtle.fillcolor('tomato')
turtle.begin_fill()
turtle.pencolor('tomato')
n = 10
while n:
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    turtle.fd(50)
    turtle.rt(144)
    n-=1
turtle.end_fill()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 08:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表