Textausgabe mit Schildkröten in Python
Das folgende Skript schreibt den Text „Python“ bei Auswertung von »write( "Python" )« an der Stelle der Schildkröte auf die Zeichenfläche.
main.py
from turtle import *
write( "Python" )
hideturtle()
Das folgende Skript schreibt verschiedene Texte auf die Zeichenfläche und illustriert dabei den move- und den align-Parameter der Funktion ›write‹.
main.py
from turtle import *
turtlesize( 0.2, 0.2, 0.2 )
left( 90 )
penup()
backward( 50 )
pencolor( 0.8, 0.2, 0.2 ); stamp(); write( "True center", move=True, align="center" ); forward( 50 )
pencolor( 0.2, 0.8, 0.2 ); stamp(); write( "True left", move=True, align="left" ); forward( 50 )
pencolor( 0.2, 0.2, 0.8 ); stamp(); write( "True right", move=True, align="right" ); forward( 50 )
pencolor( 0.8, 0.2, 0.2 ); stamp(); write( "False center", move=False, align="center" ); forward( 50 )
pencolor( 0.2, 0.8, 0.2 ); stamp(); write( "False left", move=False, align="left" ); forward( 50 )
pencolor( 0.2, 0.2, 0.8 ); stamp(); write( "False right", move=False, align="right" ); forward( 50 )
hideturtle()
- Ausgabe
False right
oFalse left
oFalse center
oTrue right
oTrue left
oTrue center
o
Mit ›write‹ kann die str-Darstellung des ersten Argumentes an der aktuellen Schildkrötenposition geschrieben werden.
Wenn ›move‹ gleich ›True‹ ist, wird die Schildkröte nach dem Schreiben des Textes in die untere rechte Ecke des Textes verschoben. Der Fehlwert von ›move‹ ist ›False‹. In diesem Falle, verändert die Ausgabe des Textes die Position der Schildkröte nicht.
Die Ausrichtung (»left«, »center« oder »right«) gibt an, welcher Teil des Textes sich an der Anfangsposition der Schildkröte befinden soll. Bei »left« befindet sich beispielweise der linke Rand des Textes an der Anfangsposition der Schildkröte.
Ausrichten
Hier werden zwei Varianten der Formatierung ein und desselben Programmes gezeigt.
Formatierungsversion A
In dem folgenden Quelltext hatte der Programmierer eine von ihm beabsichtigte Anweisung vergessen (wirklich passiert!). Können Sie sehen, welche?
main.py
from turtle import *
turtlesize( 0.1, 0.1, 0.1 )
left( 45 )
penup()
backward( 50 )
pendown()
pencolor( 0.8, 0.2, 0.2 )
stamp()
write( "center", move=True, align="center" )
forward( 50 )
pencolor( 0.2, 0.8, 0.2 )
stamp()
write( "left", move=True, align="left" )
forward( 50 )
pencolor( 0.2, 0.2, 0.8 )
stamp()
write( "right", move=True, align="right" )
forward( 50 )
stamp()
write( "center", move=False, align="center" )
forward( 50 )
pencolor( 0.2, 0.8, 0.2 )
stamp()
write( "left", move=False, align="left" )
forward( 50 )
pencolor( 0.2, 0.2, 0.8 )
stamp()
write( "right", move=False, align="right" )
forward( 50 )
hideturtle()
Formatierungsversion B
In dem folgenden Quelltext hatte der Programmierer eine von ihm beabsichtigte Anweisung vergessen (wirklich passiert!). Können Sie sehen, welche?
main.py
from turtle import *
turtlesize( 0.1, 0.1, 0.1 )
left( 45 )
penup()
backward( 50 )
pendown()
pencolor( 0.8, 0.2, 0.2 ); stamp(); write( "center", move=True, align="center" ); forward( 50 )
pencolor( 0.2, 0.8, 0.2 ); stamp(); write( "left", move=True, align="left" ); forward( 50 )
pencolor( 0.2, 0.2, 0.8 ); stamp(); write( "right", move=True, align="right" ); forward( 50 )
stamp(); write( "center", move=False, align="center" ); forward( 50 )
pencolor( 0.2, 0.8, 0.2 ); stamp(); write( "left", move=False, align="left" ); forward( 50 )
pencolor( 0.2, 0.2, 0.8 ); stamp(); write( "right", move=False, align="right" ); forward( 50 )
hideturtle()
Übungsaufgaben ⃗
/ Raute ⃗
Zeichnen Sie eine Raute „◇“ (oder ein Parallelogramm „◊“) und beschriften Sie die vier Eckpunkte mit „oben“, „rechts“, „unten“ und „links“.
- Eine Raute
oben
/\
/ \
links / \ rechts
\ /
\ /
\/
unten
Zusatzanforderung: Positionieren Sie die Texte möglichst nahe an den Eckpunkten, aber so, daß sich kein Teil eines Textes mit einer Linie überschneidet.
Anwendungsbeispiele
Ein Programm zur Demonstration vier englischsprachiger Farbnamen
- main.py
from turtle import *
colormode( 255 )
bgcolor( 127, 127, 127 )
penup()
home()
backward( 200 )
begin_fill()
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
fillcolor( 0xbe, 0x01, 0x19 )
end_fill()
right( 90 ); forward( 20 ); write( "scarlet" )
home()
backward( 100 )
begin_fill()
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
fillcolor( 0xff, 0x81, 0xc0 )
end_fill()
right( 90 ); forward( 20 ); write( "pink" )
home()
backward( 0 )
begin_fill()
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
fillcolor( 0x7e, 0x1e, 0x9c )
end_fill()
right( 90 ); forward( 20 ); write( "purple" )
home()
backward( -100 )
begin_fill()
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
forward( 50 ); left( 90 )
fillcolor( 0x9a, 0x0e, 0xea)
end_fill()
right( 90 ); forward( 20 ); write( "violet" )
hideturtle()