首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有谁能解释一下这种奇怪的蟒龟现象吗?

有谁能解释一下这种奇怪的蟒龟现象吗?
EN

Stack Overflow用户
提问于 2009-08-03 22:31:30
回答 3查看 1.1K关注 0票数 1

如果你不知道,python turtle是一个帮助人们学习python的应用程序。您将获得一个python解释器和一个屏幕上的海龟,您可以使用python向它们传递方向。

go( 10 )将使乌龟移动10个像素turn(10)将使其顺时针旋转10度

现在看看这个

代码:

代码语言:javascript
复制
import random
while(1):
    r = random.randint(1,10)
    go (r)
    r = random.randint(-90,90)
    turn (r)

有人能解释这种行为吗?注意这条直线。pythons的随机模块有问题吗?

EN

回答 3

Stack Overflow用户

发布于 2009-08-03 22:52:41

在调试这样的问题时,在执行时打印出每条指令的值可能是值得的。希望您的turtle环境能够将值打印到屏幕上的某个窗口。您可能会这样做:

代码语言:javascript
复制
while(1):
     r = random.randint(1,10)
     print "going:", r
     go (r)
     r = random.randint(-90, 90)
     print "turning:", r
     turn (r)

这种技术有许多名称,但我喜欢的一种名称是“当有疑问时,打印更多内容”。这样做可能会让你深入了解为什么你的乌龟会表现出你所看到的行为。

票数 7
EN

Stack Overflow用户

发布于 2009-08-04 21:38:46

我是PythonTurtle的创建者。

首先,我真的很荣幸在StackOverflow中看到了关于它的第一个问题。

关于你的问题:我试着运行代码,它没有产生bug,但由于这涉及到随机性,我不能真正重现在你的计算机中发生的事情。

这看起来像是一个bug,但我真的猜不出是什么导致了它。如果这种bug再次发生在你身上,最好是在不涉及随机性的时候,如果你能给我发送屏幕截图和代码片段,我将不胜感激。我的邮箱是cool-rr@cool-rr.com。

票数 1
EN

Stack Overflow用户

发布于 2009-08-03 23:01:40

尝试将这些值打印出来。下面是一个基于您的代码片段的小Python程序,它可以做到这一点:

代码语言:javascript
复制
import random
while(1):
  distance = random.randint(1,10)
  angle = random.randint(-90, 90)
  print distance, angle

我自己也试过了,angle从来没有“卡住”过。我怀疑python turtle中可能存在某种bug,但如果不在该环境中尝试,就很难确定。

有没有办法向巨蟒乌龟询问乌龟当前的角度?您可能也想将该值打印出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1224944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档