谁能解释这个奇怪的蟒蛇龟的发生?

问题描述 投票:1回答:3

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

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

现在看看这个

alt text

码:

import random
while(1):
    r = random.randint(1,10)
    go (r)
    r = random.randint(-90,90)
    turn (r)

有谁能解释这种行为?注意直线。蟒蛇随机模块有什么问题吗?

python random
3个回答
7
投票

在调试这样的问题时,可能需要在执行时打印出每条指令的值。希望您的龟环境有一种方法可以将值打印到屏幕上的某个窗口。你可能会这样做:

while(1):
     r = random.randint(1,10)
     print "going:", r
     go (r)
     r = random.randint(-90, 90)
     print "turning:", r
     turn (r)

这种技术有很多名字,但我喜欢的是“当有疑问时,打印得更多”。这样做可以提供一些洞察你的乌龟显示你看到的行为的原因。


1
投票

我是PythonTurtle的创造者。

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

关于你的问题:我尝试运行代码,它没有产生错误,但由于这涉及随机性,我无法真正重现你的计算机中发生的事情。

这似乎是一个错误,但我无法猜测导致它的原因。如果你再次遇到这种错误,最好不要涉及随机性,如果你给我发送屏幕截图和代码片段,我将不胜感激。我的邮箱是[email protected]


0
投票

尝试打印出值。这是一个基于你的代码片段的Python程序,它执行此操作:

import random
while(1):
  distance = random.randint(1,10)
  angle = random.randint(-90, 90)
  print distance, angle

我自己试了一下,并没有任何角度“卡住”。我怀疑python龟可能存在某种错误,但如果没有在那种环境中尝试,很难肯定。

有没有办法问python龟目前的龟角?您可能还想打印该值。

© www.soinside.com 2019 - 2024. All rights reserved.