2009-08-03 9 views
1

Wenn Sie nicht wissen, ist Python Turtle eine Anwendung, um Menschen zu helfen, Python zu lernen. Sie erhalten einen Python-Interpreter und eine Onscreen-Turtle, der Sie Anweisungen zur Verwendung von Python übergeben können.Kann jemand dieses seltsame Erscheinen der Pythonschildkröte erklären?

unterwegs (10) wird die Schildkröte verursachen 10 Pixel Windung (10) zu bewegen, wird es dazu führen, 10 Grad an diesem

alt text http://i28.tinypic.com/29bzoet.jpg

Code schauen im Uhrzeigersinn

jetzt zu drehen:

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

Kann jemand dieses Verhalten erklären? Beachten Sie die gerade Linie. Ist etwas falsch mit Pythons zufälligen Modul?

+2

Sie könnten den Code auch als Text posten? Das Bild ist mehr als ein bisschen schwer zu lesen! :) –

+1

wahrscheinlich die anfängliche Schildkröte Position ist auch * zufällig * (nicht initialisiert) –

+0

Import Zufall while (1): \t r = random.randint (1,10) \t unterwegs (r) \t r = zufällig. randint (-90, 90) \t turn (r) – Ryan

Antwort

7

Wenn Sie ein Problem wie dieses debuggen, kann es sich lohnen, den Wert jedes Befehls auszudrucken, während Sie ihn ausführen. Hoffentlich hat Ihre Turtle-Umgebung eine Möglichkeit, Werte in ein Fenster auf dem Bildschirm zu drucken. Man könnte so etwas tun:

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

Diese Technik, die von vielen Namen geht, aber das ein Ich mag es, „Im Zweifel mehr heraus drucken.“ Dadurch erhalten Sie möglicherweise einen Einblick, warum Ihre Schildkröte das angezeigte Verhalten zeigt.

+0

Selbst mit einem soliden Debugger ist dies manchmal der beste Weg. – Skurmedel

0

Versuchen Sie, die Werte auszudrucken. Hier ist ein kleines Python-Programm basiert auf dem Code-Snippet, das dies tut:

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

Ich habe versucht, diese selbst, und an keiner Stelle Winkel „stecken bleiben“. Ich vermute, dass es einen Bug in Python-Schildkröte geben kann, aber ohne es in dieser Umgebung auszuprobieren, ist es schwer zu sagen.

Gibt es eine Möglichkeit, Pythonschildkröte für den aktuellen Winkel der Schildkröte zu fragen? Sie können diesen Wert auch ausdrucken.

1

Ich bin der Schöpfer von PythonTurtle.

Zunächst einmal fühle ich mich wirklich geehrt, die erste Frage dazu in StackOverflow zu sehen.

Über Ihre Frage: Ich habe versucht, den Code auszuführen, und es hat den Fehler nicht erzeugt, aber da dies Zufälligkeit beinhaltet, kann ich nicht wirklich reproduzieren, was in Ihrem Computer passiert ist.

Es scheint wie ein Fehler, aber ich kann nicht wirklich erraten, was es verursacht. Wenn diese Art von Fehler wieder bei Ihnen auftritt, vorzugsweise wenn keine Zufälligkeit vorliegt, würde ich mich freuen, wenn Sie mir den Screenshot und das Code-Snippet senden. Meine Mail ist [email protected]

Verwandte Themen