Eingabe und Ausgabe
Ein- und Ausgabe in Python
input(s)
- Hält das Programm an und verlangt von der Benutzer:in eine Eingabe in der Kommandozeile.
- Der String
s
wird dabei als Eingabeaufforderung ausgegeben. - Der String
print(s)
- Gibt den String
s
in der Kommandozeile aus. int(s)
- Verwandelt den String
s
in einen Wert vom Datentypint
.
Bei einigen der folgenden Aufgaben arbeiten Sie nicht mit Turtle-Befehlen. Solche Programme müssen deshalb nicht mit from turtle import *
beginnen und haben am Schluss auch kein done()
.
Wir beginnen ganz einfach: Schreiben Sie ein Turtle-Programm, das ein Quadrat mit Seitenlänge 100 zeichnet.
Passen Sie das Programm nun so an, dass es vom Benutzer eine Farbe als Eingabe verlangt. Verwenden Sie diese Farbe anschliessend als Stiftfarbe. Der Benutzer kann damit bei jeder Ausführung des Programms neu festlegen, mit welcher Farbe das Quadrat gezeichnet werden soll.
Schreiben Sie ein Programm, das die Benutzerin nach ihrem Namen fragt. Dabei soll die Eingabeaufforderung Name:
angezeigt werden. Wenn man dann den Namen eingibt und Enter drückt, soll der Name einfach wieder ausgegeben werden.
Wenn man also z.B. Snoopy
eingibt, dann erscheint als Ausgabe einfach auch wieder Snoopy
.
Entwickeln Sie ein Programm, das vom Benutzer eine Zahl als Eingabe verlangt. Legen Sie selber fest, welcher Text dabei angezeigt werden soll.
Das Programm soll dann das Doppelte dieser Zahl ausgeben.
Entwickeln Sie ein Programm, das vom Benutzer nacheinander zwei Zahlen als Eingabe verlangt. Legen Sie selber fest, welcher Text dabei angezeigt werden soll.
Das Programm soll dann die Summe dieser beiden Zahlen ausgeben.
Entwickeln Sie ein Programm, das vom Benutzer nacheinander drei Noten als Eingabe verlangt. Dabei sollen auch Eingaben wie 5.5
, 4.3
, etc. erlaubt sein.
Mit dem Befehl int(s)
können Sie einen String s
zu einem int
verwandeln. Analog dazu gibt es auch den Befehl float(s)
.
Das Programm soll daraus den Notenschnitt berechnen und ausgeben.
Wie Sie mit der Turtle ein beliebiges n
-Eck zeichnen können, wissen Sie bereits.
Schreiben Sie nun ein Programm, das den Wert für n
als Benutzereingabe verlangt. Wenn man also z.B. 7
eingibt, dann soll ein Siebeneck gezeichnet werden. Zudem soll auch die Seitenlänge als Benutzereingabe verlangt werden.
Strings verketten
Vorhin haben Sie ein Programm entwickelt, das die Benutzer:in nach ihrem Namen fragt und diesen Namen einfach wieder ausgibt. Jetzt möchten wir dieses Programm erweitern und die Person stattdessen freundlich grüssen. Die Eingabe Snoopy
soll neu zur Ausgabe Hallo, Snoopy!
führen.
Dazu brauchen wir ein einfaches Konzept mit einem komplizierten Namen: die String-Konkatenation. Das bedeutet nichts anderes, als dass wir Strings (also Werte vom Typ str
) aneinanderhängen (d.h. verketten, konkatenieren).
Dazu verwenden wir das +
-Zeichen, wie bei der Addition. Im Folgenden (noch nicht sehr sinnvollen) Beispiel sehen Sie die Konkatenation der zwei Strings Hallo,
und Welt
. Daraus entsteht Hallo, Welt
.
print('Hallo, ' + 'Welt')
String-Konkatenation funktioniert nicht nur innerhalb der Klammern eines print()
-Befehls. Wir könnten das Resultat beispielsweise auch einer Variable zuweisen:
gruss = `Hallo ` + `Welt`.
Kopieren Sie Ihr Programm aus der vorangehenden Ausgabe nun hierhin und passen Sie es so an, dass nicht mehr einfach nur der Name ausgegeben wird. Stattdessen soll vor dem Namen immer zuerst Hallo,
stehen (Leerschlag nicht vergessen!) und am Schluss noch ein Ausrufezeichen kommen.
Zum Beispiel soll also die Eingabe Snoopy
zur Ausgabe Hallo, Snoopy!
führen.
Das funktioniert schon ganz gut. Was passiert aber, wenn wir einen Text und eine Zahl konkatenieren wollen? Probieren Sie's aus:
print('Hallo! Sie sind Besucher Nummer ' + 3)
Das funktioniert noch nicht wie erwartet... Das Problem: Python lässt uns nur Strings mit Strings konkatenieren. Wir müssen die Zahl deshalb zuerst in einen String verwandeln.
Analog zu den Befehlen int(s)
und float(s)
gibt es dazu den Befehl str(x)
welcher einen beliebigen Wert in einen String umwandelt.
print('Hallo! Sie sind Besucher Nummer ' + str(3))
str(x)
- Verwandelt beliebige Werte zum Datentyp
str
.- Nützlich, um z.B. eine Zahl (
int
,float
) mit einemstr
zu konkatenieren.- ❌
print('Hallo, ' + 3)
→ Fehler!- ✅
print('Hallo, ' + str(3))
→ GibtHallo 3
aus. - Nützlich, um z.B. eine Zahl (
Schreiben Sie ein Programm, das die Benutzerin nach ihrem Jahrgang fragt, daraus ihr Alter berechnet (den genauen Geburtstag ignorieren wir hier) und das Resultat als vollständigen Satz ausgibt. Das aktuelle Jahr können Sie im Code einfach fix hinschreiben (keine Eingabe).
Zum Beispiel soll für die Eingabe 2010
im Jahr 2024 also etwas wie Du wirst dieses Jahr 14 Jahre alt.
ausgegeben werden.
Entwickeln Sie einen "digitalen Würfel", bei den die Benutzerin selbst entscheiden kann, wie viele Seiten er haben soll.
Fragen Sie also zuerst nach einer Anzahl Seiten als Eingabe. Generieren Sie anschliessend eine 👉 zufällige Ganzzahl zwischen 1 und der eingegebenen Anzahl Seiten: Das ist das Ergebnis. Geben Sie dieses im Format Ergebnis: x (Anzahl Seiten: y)
, also z.B. Ergebnis: 4 (Anzahl Seiten: 7)
, wenn mit einem 7-seitigen Würfel eine 4 gewürfelt wurde.
⭐️ Zusatzaufgaben
Entwickeln Sie ein Flaggen-Designer-Programm. Das Programm soll vom Benutzer eine Höhe, eine Breite und drei Farbe erfragen. Anschliessend zeichnet es mit Turtle eine Flagge aus drei horizontalen Streifen. Der oberste Streifen wird in der ersten Farbe, der mittlere Streifen der zweiten Farbe und der unterste Streifen in der dritten Farbe gezeichnet.
Die gesamte Flagge sollte genauso hoch und so breit sein, wie vom Benutzer gewünscht. Die Höhe der einzelnen Streifen entspricht also 1/3 der Höhe der gesamten Flagge. Am Schluss sollte die Turtle nicht mehr im Bild zu sehen sein.
Entwickeln Sie ein Turtle-Programm, das den Computer unendlich lange immer wieder nach einer Zahl fragt. Die erste Eingabe setzen Sie dann in den Turtle-Befehl forward(n)
ein, die zweite in den Befehl right(n)
, dann wieder forward(n)
, etc.
So haben Sie am Schluss ein Programm, mit dem die Benutzer:in die Turtle quasi "live" steuern kann (wenn auch nur mit dem Befehlen forward(n)
und right(n)
).
Auf der Webseite funktioniert diese Aufgabe nicht sehr gut. Verwenden Sie deshalb besser Thonny. Das Ergebnis können sie dann hier einfügen.