Schildkröten (Schildkröten), Lektion, Seite 723976
https://www.purl.org/stefan_ram/pub/schildkroeten_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Schildkröten

Eine Schildkröte  ist ein System, welches sich auf einer Zeichenfläche bewegen und dabei eine Spur hinterlassen kann.

Das Modul ‹turtle› enthält aufrufbare Objekte zum Steuern einer Schildkröte. Wir werden aber in dieser Lektion erst einmal nur die Zeichenfläche öffnen und wieder schließen.

Ein Programm sollte nicht  als »turtle.py« gespeichert werden, da »from turtle import *« dann nicht mehr aus dem richtigen Modul importiert, sondern aus dem gespeicherten Programm »turtle.py«!

Allgemein sollte ein Programm nicht  unter dem Namen eines Moduls, das man vielleicht einmal importieren möchte (wie »math« oder »random«), gespeichert werden.

Im Zweifelsfall kann immer der Name »main.py« verwendet werden.

Videos

xMzojQFyMo0 Seymour Papert 1972

KeFhFPN08hc Logo's yellow turtle

IDLE  und Schildkröten

Die Verwendung der Schildkrötengraphik von der Konsole aus  ist unter manchen Windows -Versionen schwierig, da das Graphikfenster dort manchmal nicht reagiert und manchmal ein Neustart der Konsole nötig wird (falls man nicht »done()« auswerten läßt, was aber verhindert, daß die Schildkröten danach noch weiterbewegt werden).

Oft kann das Schildkrötensystem mit IDLE  besser verwendet werden als mit der Konsole.

Alle Schildkröten-Skripte in diesem Kurs sind für die Verwendung mit IDLE  gedacht.

Anzeigen der Erklärung des Moduls

Mit ›help‹ kann eine ausführliche Erklärung des Moduls angezeigt werden.

Konsolenprotokoll (verkürzt)

import turtle

help( turtle )

Help on module turtle:

home‹ – Zurücksetzen

Nach der Auswertung eines Aufrufs der Wirkfunktion ›home‹ befindet sich die Schildkröte in ihrer Ausgangsposition und zeigt nach rechts.

Aufruf

from turtle import *

home()

Falls das Schildkrötenfenster bisher noch nicht geöffnet war, wird es geöffnet, sobald eine der hier vorgestellten Schildkröten-Funktionen aufgerufen wird.

Die obenstehende Eingabe sollte daher das Schildkrötenfenster öffnen. Eventuell wird dieses nicht von alleine sichtbar, weil es sich hinter anderen Fenstern verbirgt. Dann muß das Schildkrötenfenster erst gesucht und nach vorne gebracht werden.

Das Konsolenfenster sollte nun so verschoben werden, daß sich das Konsolenfenster und das Schildkrötenfenster nicht überlappen. Andere Fenster sollten nicht sichtbar sein. (Dies ist bei Verwendung von IDLE  weniger wichtig.) (Das Schildkrötenfenster kann zwar ebenfalls verschoben werden, aber es wird machmal automatisch wieder an der ursprünglichen Position angezeigt.)

hideturtle‹ – Verstecken

Nach der Auswertung von »hideturtle()« wird die Schildkröte versteckt.

Aufruf

from turtle import *

hideturtle()

showturtle‹ – Anzeigen

Nach der Auswertung von »showturtle()« wird die Schildkröte angezeigt.

Aufruf

from turtle import *

showturtle()

Anzeigen der Erklärung von ›hideturtle

Mit ›help‹ können auch Erklärungen der Namen des Moduls angezeigt werden.

Konsolenprotokoll (verkürzt)

from turtle import *

help( hideturtle )

Help on function hideturtle in module turtle:

speed‹ – Geschwindigkeit

Nach der Auswertung von »speed( True )« bewegt sich die Schildkröte langsamer, daß man ihre Bewegung besser beobachten kann.

Aufruf

from turtle import *

speed( True )

Durch Auswertung von »speed( False )« kann die Geschwindigkeit auf ihr Maximum gesetzt werden.

»penup()« – Spurkontrolle

»penup()« Bewegen ohne  Hinterlassen einer Spur einschalten

»pendown()« Bewegen mit Hinterlassen einer Spur einschalten

»pensize( 5 )« – Größenkontrolle

»pensize( 5 )« Linienbreite auf 5 stellen (für danach  gezeichnete Linien)

»pensize()« – Größenabfrage ⃗

»pensize()« ein Wertausdruck, der die derzeit eingestellte Stiftgröße als Zahl ergibt

»stamp()« – Stempeln ⃗

»stamp()« erzeugt ein dauerhaftes Abbild („Stempelung“) der Schildkröte an ihrer derzeitigen Position

shape‹ – Form ⃗

Nach der Auswertung von »shape( 'turtle' )« wird die Schildkröte als solche angezeigt, während sie sonst nur durch ein Dreieck dargestellt wird.

Aufruf
shape( 'turtle' )

Durch eine Auswertung von »shape( 'classic' )« kann die ursprüngliche dreieckige Form wiederhergestellt werden.

Die folgende Auflistung enthält die Namen für verschiedene graphische Gestaltungen der Schildkröte.

Formen
»arrow« – Pfeil
»circle« – Kreis
»classic« – kleines Dreieck
»square« – Quadrat
»triangle« – Dreieck
»turtle« – Schildkröte

turtlesize‹ – Form ⃗

Diese Funktion erwartet drei Argumente, welche die Vergrößerung der Schildkröte in waagerechter und senkrechter Richtung sowie ihrer Umrahmung angeben. Mit »turtlesize( 0.1, 0.1, 0.1 )« erhält man beispielsweise eine verkleinerte Schildkröte.

done‹ – Aufgeben des Fensters ⃗

Nach der Auswertung von »done()« verliert das Programm die Kontrolle über das Schildkrötenfenster. Dadurch erlangt der Bediener die Kontrolle über das Schildkrötenfenster und kann es dann beispielsweise verkleinern oder schließen. Erst nach dem Schließen des Fensters durch den Bediener können dann wieder weitere Python -Kommandos eingegeben werden.

Protokoll
done()

Unter manchen Python -Implementationen ist es wichtig, nach Erstellung einer Zeichnung »(done)« aufzurufen, damit der Benutzer das Schildkrötenfenster normal bedienen kann, unter anderen Python -Implementationen kann das Schildkrötenfenster ohnehin immer normal bedient werden, und der Aufruf von ›done‹ ist nicht wichtig.

Manchmal ist ›done‹ auch hilfreich, weil sein Aufruf das Fenster noch offen hält und ein sofortiges Schließen des Fensters nach Beendigung einer Zeichnung verhindert.

reset‹ – Zurücksetzen ⃗

Nach der Auswertung eines Aufrufs der Wirkfunktion ›reset‹ ist eine eventuelle Zeichnung der Schildkröte gelöscht und die Schildkröte befindet sich wieder in ihrer Ausgangsposition.

Aufruf
reset()

Bei Schwierigkeiten mit der Verwendung des Schildkrötensystems könnte es vielleicht hilfreich sein, wenn am Anfang eines Skriptes (nach den import-Anweisungen) zunächst zweimal »reset« und ganz am Ende des Skripts einmal »done« aufgerufen wird.

bye‹ – Verabschieden ⃗

Nach der Auswertung eines Aufrufs der Wirkfunktion »bye« ist das Fenster mit der Zeichenfläche geschlossen.

Aufruf
bye()

Durch zweifache  Auswertung von »reset()« kann das Fenster wieder geöffnet werden. (Manchmal reicht auch eine einfache Auswertung aus.)

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723976 stefan_ram:723976 Schildkröten Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723976, slrprddef723976, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/schildkroeten_python