Programmieren Teil 2 – Rechnen, Strings und While-Schleife
Lernziele:
Grundsätzlich: Ich schreibe meinen Code clever und elegant. Es geht nicht nur darum, ob der Code das macht, was er soll, sondern auch darum, wie der Code geschrieben wurde.
Ich kann die wichtigsten Vergleichsoperatoren (<,>,<=,>=,!=,==
) verwenden, um Zahlen miteinande zu vergleichen
Ich kann mit den wichtigsten mathematischen Operatoren rechnen (+,-,*,/,//,%,**
).
Ich kann den Zuweisungsoperataor =
und den Vergleichsoperator ==
richtig verwenden.
Ich kann mit f-Strings arbeiten und Werte von Variablen am richtigen Ort im String einsetzen.
Ich kann komplexere Grafiken mit der Turtle elegant mit Schleifen programmieren, zum Beispiel:
Ich kann mit while-Schleifen einen Codeblock wiederholen lassen, z.B.:
Ich kann die Funktionen print()
und input()
korrekt und sinnvoll verwenden.
Ich kann while-Schleifen und Verzweigungen kombinieren, z. B. um in einer Zahlenreihe bestimmte Zahlen abzufragen.
Ich verwende KEIN REPEAT mehr. Nie mehr!
Ich kann mit break aus einer „Endlosschleife“ ausbrechen.
1. Rechnen & Strings
Rechnen
Mit Python kann man besser rechnen als mit jedem Taschenrechner. Unter anderem gibt es alle gängigen Rechenoperationen wie $+,-,\cdot,/$ und viele weitere mathematische Operatoren in Python:
Funktion | Python-Code |
Addition | 7 + 3 |
Subtraktion | 7 - 3 |
Multiplikation | 7 * 3 |
Division (mit Nachkommastellen) | 7 / 3 |
Ganzzahldivision | 7 // 3 |
Modulo (Rest der Ganzzahl-Division, Bsp. 17 % 5 = 2 ) | 17 % 2 |
Hoch (z.B. 2 hoch 5) | 2**5 |
Erinnerung: Wenn wir einer Variable einen Wert zuweisen, verwenden wir die Zuweisungsanweisung =
. Dieser weist der Variablen auf der linken Seite den Wert auf der rechten Seite zu, also z.B. x = 42
. Damit kann man auch den Wert einer Variable erhöhen oder verringern:
x = 42 # Variable x mit Wert 42
print(x) # Ausgabe: 42
x = x + 1 # Rechte Seite ergibt 43. Dieser Wert wird nun x zugewiesen
print(x) # Ausgabe: 43
Strings
Ein String ist nichts anderes als Text, der zum Beispiel in einer Variable gespeichert wird:
name = "Hans Müller" # Variable name hat Wert "Hans Müller" und ist ein String
f-Strings
Wir werden nun vermehrt Werte berechnen, die wir dann in einem schönen Format ausgeben wollen. Am einfachsten geht dies mit sogenannten f-Strings: Diese erlauben es einem, einen String mit dem Wert einer Variable zu kombinieren:
age = input("Wie alt bist du?") # Benutzerin wird nach Alter gefragt, wird in Variable age gespeichert.
print(f"Du bist {age} Jahre alt") # Der Wert der Variable age (also das Alter) wird im String eingefügt.
Falls die Benutzerin $15$ eingibt, gibt der Code dann also „Du bist 15 Jahre alt“ aus. Beachte:
Vor dem String muss zwingend f
stehen, was für formatiert steht.
Die Variable, von der der Wert eingefügt werden soll, muss in geschwungenen Klammern {...}
stehen.
Aufgaben G
Aufgabe G1
Berechne mithilfe von Python. Verwende dazu die Rechenoperatoren in der Tabelle oben.
$62342+43169 = $
$287 \cdot 63 = $
$7731 : 532 = $
$\cfrac{(24\cdot 9)^3+10077697}{13} = $
Die Resultate kannst du mit print()
ausgeben. Prüfe, ob sie stimmen:
Resultate:
105511
18081
14.531954887218046
1550414.8461538462
Aufgabe G2
Frage die Benutzer:in der Reihe nach ihrem Namen, Alter und Wohnort (separate input-Befehle). Gib dann eine schöne Zusammenfassung aller Eingaben mittels eines formatierten Strings (f-String) aus.
Beispiel:
Aufgabe G3
Frage die Benutzer:in nach ihrem Alter in Jahren. Berechne nun ihr Alter …
in Jahren
in Monaten
in Tagen
in Sekunden
Gib die Resultate schönt formatiert aus. Keep it simple, ignoriere Schaltjahre.
Beispiel: Falls Eingabe $7$ ist, sollen Ausgaben sein:
Alter in Jahren: 7
Alter in Monaten: 84
Alter in Tagen: 2555
Alter in Sekunden: 220752000
Aufgabe G4
Programmiere einen Countdown. In der Konsole soll also ausgegeben werden:
10
9
8
7
6
5
4
3
2
1
Los!
Tipps:
Verwende repeat-Schleife. Starte mit einer Variable, z.B. number = 10
. Verringere nun number
in jedem Durchgang der Schleife um 1.
Optional: Summiere alle Zahlen auf. Berechne also $10 + 9 + 8 + \ldots + 1$. Was erhält man, wenn man den Countdown bei $100$ startet?
Aufgabe G5
Gerade oder ungerade – Die Benutzer:in gibt eine Zahl ein. Dein Programm überprüft, ob die Zahl gerade ist oder nicht und gibt entsprechend eine der folgenden Meldungen aus:
Tipp:
Der %
-Operator, auch Modulo-Operator genannt, gibt den Rest der Ganzzahldivision zurück. Beispiel: 5 %
2 ergibt 1.
Aufgabe G6
M&M's-Verteiler: Zusammen mit ein paar Freunden kaufst du dir eine Tüte M&M's. Diese werden dann gleichmässig verteilt. Schreibe nun folgenden Code:
Frage die Benutzer:in nach der Anzahl M&M's in der Tüte.
Frage die Benutzer:in nach der Anzahl Freunde.
Der Code gibt dann schön formatiert aus, wie viele M&M's jede Person erhält …
… und wie viele übrig bleiben.
Beispiel: Für $39$ M&M und $4$ Freunde soll ausgegeben werden: „Es gibt 9 M&M pro Person und es bleiben 3 Stück übrig.“
Tipps:
Verwende //
und %
Operatoren.
Aufgabe G7
Vielfaches von 3 – Die Benutzerin kann eine beliebige (ganze) Zahl eingeben. Dein Code gibt eine Meldung aus, die
Beispiel-Ausgabe: „Die Zahl 34 ist kein Vielfaches von 3.“
Aufgabe G8
Zeichne mit einer Turtle die folgende Figur:
Tipps:
Definiere eine Variable für die Startposition (genauer: dessen $x-$Koordinate).
Zeichne einen Kreis.
Addiere zur Startposition-Variable einen passenden Wert.
Wiederhole in einer Schleife.
Aufgabe G9
Zeichne mit einer Turtle die folgende Figur:
Tipps:
Ähnlich wie die letzte Aufgabe.
Nur muss im Gegensatz zu einem Kreis (ein einziger Befehl) ein Quadrat mit einer Schleife erzeugt werden.
Du brauchst also eine zweite Schleife in der ersten Schleife.
2. While-Schleife
Mit einer Schleife kann man einen Codeblock wiederholt ausführen lassen und zwar solange, wie eine vorgegebene Bedingung erfüllt ist.
while <Bedingung>:
# Hier Codeblock, der wiederholt werden soll,
# solange die Bedingung erfüllt ist.
# Allen Zeilen, die zum Codeblock gehören
# müssen eingerückt sein.
# hier Code, der NACH der while-Schleife ausgeführt werden soll
Alle Zeilen Code, die zum Codeblock der Schleife gehören werden eingerückt. Verwende dazu die Tab-Taste oben links. Nachdem der ganze Codeblock ausgeführt wurde, wird die Bedingung erneut überprüft. Ist sie immer noch erfüllt, wird der gleiche Codeblock wieder ausgeführt usw.
Beispiel:
Folgender Code zeichnet eine rechtwinklige Spirale wie im Bild unten. Am Ende der Spirale wird ein ruter Punkt gezeichnet.
from gturtle import *
morla = Turtle()
seite = 10
while seite <= 100:
morla.forward(seite)
morla.right(90)
seite = seite + 10
morla.setPenColor("red")
morla.dot(40)
Ab sofort gilt ein komplettes Verbot der repeat-Schleife. Verwende stattdessen die while-Schleife.
Aufgaben H
Aufgabe H1
Zählen: Gib alle Zahlen von $0$ bis und mit $42$ in der Konsole aus. Verwende eine while-Schleife.
Ausgabe:
0
1
2
...
41
42
Aufgabe H2
It's (not) the final countdown: Programmiere wieder einen Countdown, diesmal aber natürlich mit einer while-Schleife.
Ausgabe:
10
9
8
...
2
1
Los!
Tipps:
Anstelle aufwärts zu zählen, zählt man hier abwärts:
Aufgabe H3
Quadrat III: Lasse wieder eine Turtle ein Quadrat zeichnen – mit einer while-Schleife!
Aufgabe H4
Summieren: Berechne die Summe aller natürlicher Zahlen bis und mit $100$, also:
$$1 + 2 + 3 + \ldots + 98 + 99 + 100 = ???$$
Guess what? Genau, man soll wieder eine while-Schleife programmieren.
Tipps:
Für die while-Schleife benötigt man natürlich wieder einen Counter, z.B. count = 0
→ erhöhe in jedem Durchgang der Schleife um $1$.
Definiere eine zusätzliche Variable, z.B. summe = 0
Addiere in jedem Durchgang der Schleie den aktuellen Wert von count
zu summe
.
Aufgabe H5
Gib die ersten $100$ Zahlen der 7er-Reihe aus, also $7,14,21,\ldots$ $700$.
Aufgabe H6
Zeichne eine Spirale aus Halbkreisen wie im Bild unten:
Start mit Radius 10. Erhöhen in 10er-Schritten.
Bis zu einem Radius von 50 soll die Spirale blau sein.
Dann soll sie rot sein – bis zu einem Radius von 90.
Tipp:
Verwende zwei while-Schleifen nacheinander.
Aufgabe H7
Zeichne ein Muster aus blauen Kreissegmenten und roten 20-px-Punkten wie im Bild unten. Benutze eine While-Schleife.
Aufgabe H8
Zeichne ein Muster aus Sechsecken wie im Bild unten. Die kleinen Sechsecke haben die Seitenlänge 30, das grosse Sechseck hat die Seitenlänge 100.
Tipp:
Verwende zwei while-Schleifen ineinander.
Optional: Verändere die Seitenlängen so, dass der Stern in der Mitte geschlossen ist.
Aufgabe H9
Böse Sieben: Schreibe eine Programm, das alle Zahlen von 1 bis 50 ausgibt, aber: Wenn es eine Zahl aus der Siebner-Reihe ist, soll statt der Zahl die Meldung „Bösi“ ausgegeben werden.
Aufgabe H10
Ein mal eins gibt eins: Schreibe ein Programm mit while-Schleife und aus ingesamt vier Codezeilen, das folgende Meldungen ausgibt:
„1 mal 1 gibt 1“
„2 mal 2 gibt 4“
…
„9 mal 9 gibt 81“
Tipps:
Aufgabe H11
Zahlen raten 1: Schreibe ein Programm, bei dem die Benutzer:in eine geheime Zahl zwischen 1 und 12 erraten soll.
Solange die Benutzer:in die Zahl nicht errät, wird sie (erneut) aufgefordert, eine Zahl einzugeben.
Sobald die Benutzer:in die richtige Zahl errät, soll das Programm eine Meldung in folgendem Format ausgeben: „Die Zahl 7 ist richtig. Du hast 5 Versuche gebraucht.“
Aufgabe H12
Reihen-Generator Version 1
Schreibe ein Programm, bei dem die Benutzer:in die Reihe (Eine Zahl zwischen 1 und 9) eingeben kann. Dann werden die ersten zehn Zahlen dieser Reihe ausgegeben. Für die Eingabe $3$ würden also die Zahlen $3, 6, 9$ … $30$ ausgegeben.
Reihen-Generator Version 2
Erweitere das Programm um folgende Funktionen:
Es wird gezählt, wieviele Vielfache von Vier in der Reihe vorkomen. Am Ende wird eine Meldung in folgendem Format ausgegeben:
Es wird die Summe aller Zahlen der Reihe berechnet. Am Ende wird eine Meldung in folgendem Format ausgegeben:
Reihen-Generator Version 3 – Optional
Erweitere das Programm um folgende Funktion:
Die Benutzer:in wird solange nach einer Reihe gefragt, bis sie eine Zahl zwischen 1 und 9 eingibt. Wenn sie also 0 (oder geringer) eingibt, wird sie erneut gefragt. Wenn sie 10 (oder höher) eingibt, wird sie erneut gefragt.
Aufgabe H13
Zimetschtern hani gern – Schreibe ein Programm, bei dem die Benutzer:in eingeben kann, wie viele Zimtsterne sie essen möchte. Dann zeichnet dein Programm (mit einer Turtle, die versteckt ist) die entsprechende Menge Zimtserne in einer Reihe auf, siehe Bild. Hinweis: Der Winkel für einen fünfzackigen Stern beträgt 144 Grad.
Optional 1: Die Zimtsterne werden in Reihen zu drei Sternen angeordnet, siehe Bild:
Optional 2: Die Zimtsterne sollen so angeordnet werden, dass sie ein möglichst grosses Quadrat bilden. Wird eine Quadratzahl überschritten, so wird die Anzahl Spalten erhöht. Bei 9 Sternen sind es zum Beispiel 3 Spalten, ab 10 Sternen sind es 4 Spalten, ab 17 Sternen 5 Spalten etc.
3. Endlosschleifen und Break
Eine While-Schleife wiederholt einen Codeblock solange, wie ihre Bedingung erfüllt ist. Wenn die Bedingung immer erfüllt ist, ist es eine Endlosschleife. Oft programmiert man aus Versehen eine Endlosschleife, es gibt aber auch viele Situationen, in denen dies erwünscht ist. Zum Beispiel will man typischerweise ein Game so lange spielen können, bis man keine Lust mehr hat (oder einem die Eltern zwingen, aufzuhören). Man verfolgt dann beim Programmieren den folgenden Ansatz:
Schreibe den Code in eine Endlosschleife:
while True:
# hier kommt der Codeblock,
# der wiederholt werden soll
Sobald der Codeblock aber doch abgebrochen werden soll (z.B. wegen GameOver oder beim erfolgreichen Abschliessen des Spiels oder weil die Benutzerin keine Lust mehr hat), schreibt man das Keyword break
. Dies bricht die Schleife per sofort ab.
Beispiel:
Die Benutzer:in wird aufgefordert, die kleinste Pimzahl einzugeben. Sobald sie $2$ eingegeben hat, soll die Schleife abgebrochen und der Benutzer:in gratuliert werden:
while True:
number = input("Gib die kleinste Primzahl ein:")
if number == 2:
break
else:
print("Leider nicht, versuche es noch einmal")
print("Gratuliere, du hast die richtige Zahl, 2, eingegeben!")
Aufgaben I
Löse alle Aufgaben mit while-Schleifen und break.
Aufgabe I1
Negative Zahl: Die Benutzerin soll solange aufgefordert, eine negative Zahl einzugeben, bis sie es geschafft hat. Gibt sie eine falsche Zahl ein, soll sie erneut aufgefordert werden.
Aufgabe I2
Code für Geheimtür: Der Benutzer soll aufgefordert werden, das geheime Passwort („spaghetti“) einzugeben. Gibt er es falsch ein, wird „Zugang verweigert“ ausgegeben. Macht er es richtig, wird „Zugang gewährt“ ausgegeben und der Code abgebrochen.
Aufgabe I3
Unendliche Summe: Die Benutzerin soll unendlich oft hintereinander aufgefordert werden, eine Zahl einzugeben. Die neu eingegebene Zahl wird zu den bisherigen hinzuaddiert und das aktuelle Resultat ausgegeben.
Um das Programm abzubrechen, kann die Benutzerin „q“ (für Quit) eingeben.
Aufgaben I4
Zahlen raten 2: Schreibe ein Programm, bei dem die Benutzer:in eine geheime Zahl zwischen 1 und 100 erraten soll.
Die Benutzer:in hat maximal 7 Versuche.
Wenn die eingegebene Zahl zu niedrig ist, erscheint eine passende Meldung.
Ebenso, wenn die Eingabe zu hoch ist.
Die Input-Meldung zeigt jeweils an, welcher Versuch es ist (siehe Beispiel).
Sobald die Benutzer:in die richtige Zahl errät, soll das Programm eine passende Meldung mit der Anzahl Versuche ausgeben (siehe Beispiel).
Beispiel für die Ein-und Ausgabe:
Rate die geheime Zahl zwischen 1 und 100. Du hast maximal 7 Versuche.
Versuch 1: 50
Zu hoch!
Versuch 2: 25
Zu niedrig!
Versuch 3: 37
Richtig! Du hast die Zahl in 3 Versuchen erraten.
Optional: Gib eine Meldung „Game over.“ aus, wenn alle 7 Veruche falsch waren.
Zusatzaufgaben II
Random
Mit dem Modul random kannst du zufällige Zahlen erzeugen. Hier ein Beispiel:
import random
zahl1 = random.randint(1, 9)
print(zahl1)
Die erste Zeile importiert das Modul random.
In der zweiten Zeile wird zahl 1 auf eine zufällige Zahl zwischen 1 und 9 gesetzt. Bei der Funktion randint()
gibst du in der Klammer den Bereich an, aus dem eine zufällige Zahl gewählt wird.
Die dritte Zeile gibt die Zahl aus.
Probiere es aus – führe den Code mehrmals aus!
Aufgabe Z1 – Additions-Quiz 1
Schreibe ein Programm, bei dem die Benutzer:in mehrere Fragen folgender Art beantworten muss:
„Was gibt 3 plus 4?“
Die beiden Summanden werden jeweils zufällig besimmt und befinden sich im Bereich zwischen 1 und 12.
Das Programm prüft jeweils, ob die Eingabe korrekt war und gibt eine entsprechende Meldung aus („richtig“ oder „falsch“).
Nach 5 Fragen wird die Meldung „Fertig“ ausgegeben. Benutze eine While-Schleife.
Aufgabe Z2 – Additions-Quiz 2
Erweitere das Additions-Quiz um folgende Funktionen:
Die Benutzer:in kann mit der Eingabe „q“ das Quiz abbrechen.
Am Ende wird eine Meldung in folgendem Format ausgegeben: „Du hast 3 von 4 Aufgaben richtig gelöst.“ Bei dieser Meldung wurden also vier von fünf Aufgaben beantwortet und drei davon richtig.
Aufgabe Z3 – Additions-Quiz 3
Erweitere das Additions-Quiz um folgende Funktionen:
Die Anzahl Fragen ist unbegrenzt. Die Benutzer:in kann mit der Eingabe „q“ das Quiz beenden.
Bei jeder richtigen Antwort erklingt ein 440-Hz-Ton, bei jeder falschen ein 262-Hz-Ton – jeweils für 250 Milisekunden. Benutze die Funktion
playTone(frequency, duration)
aus dem gturtle-Modul, siehe auch
hier.
Am Ende wird eine Meldung in folgendem Format ausgegeben: „Du hast 7 Aufgaben gelöst – davon 85.7 % richtig.“
Aufgabe Z4 – Rechen-Quiz
Verändere das Additions-Quiz 3 wie folgt:
Die Tonfunktion kommt wieder raus (die Töne nerven mit der Zeit).
Neu werden nicht nur Additionsrechnungen, sondern auch Subtraktions-, Multiplikations- und Modulorechnungen gestellt. Dabei wird der Operator (+, -, *, %) jeweils zufällig bestimmt.
Lösungen
Achtung: Meist gibt es mehrere Lösungen. Nur weil deine Lösung anders ist als diejenige in den Musterlösungen unten, bedeutet dies nicht, dass deine nicht richtig/gut ist. Sende oder zeige im Zweifelsfall deine Lösung der Lehrperson.
Lösungen G
Aufgabe G1
print(62342 + 43169)
print(287 * 63)
print(7731 / 532)
print(((24*9)**3+10077697)/13)
Aufgabe G2
name = input("Wie heisst du?")
age = input("Wie alt bist du?")
residence = input("Wo wohnst du?")
print(f"Du heisst {name}, bist {age} Jahre alt und wohnst in {residence}.")
Aufgabe G3
age = input("Gib dein Alter ein.")
print(f"Alter in Jahren: {age}")
print(f"Alter in Monaten: {age * 12}")
print(f"Alter in Tagen: {age * 365}")
print(f"Alter in Sekunden: {age * 365 * 24 * 3600}")
Aufgabe G4
number = 10
repeat 10:
print(number)
number = number - 1
print("Los!")
oder
number = 10
repeat number:
print(number)
number = number - 1
print("Los!")
Aufgabe G5
zahl = input("Bitte eine ganze Zahl eingeben:")
if zahl % 2 == 0:
print("Die Zahl ist gerade")
else:
print("Die Zahl ist ungerade")
Aufgabe G6
nr_mm_total = input("Wie viele M&M sind in der Packung?")
friends = input("Wie viele Freunde seid ihr?")
nr_mm_per_person = nr_mm_total // friends
mm_remaining = nr_mm_total % friends
print(f"Es gibt {nr_mm_per_person} M&M pro Person und es bleiben {mm_remaining} Stück übrig.")
Aufgabe G7
zahl = input("Bitte eine ganze Zahl eingeben:")
if zahl % 3 == 0:
print(f"Die Zahl {zahl} ist ein Vielfaches von 3!")
else:
print(f"Die Zahl {zahl} ist kein Vielfaches von 3.")
Aufgabe G8
from gturtle import *
morla = Turtle()
xpos = -200
radius = 20
repeat 10:
morla.setPos(xpos,0)
morla.rightArc(radius, 360)
xpos = xpos + 2*radius
Aufgabe G9
from gturtle import *
morla = Turtle()
morla.hideTurtle()
xpos = -200
seite = 40
repeat 10:
morla.setPos(xpos,0)
repeat 4:
morla.forward(seite)
morla.left(90)
xpos = xpos + seite * 1.2
Lösungen H
Aufgabe H1
count = 0
while count <= 42:
print(count)
count = count + 1
Aufgabe H2
count = 10
while count > 0:
print(count)
count = count - 1
print("Los!")
Aufgabe H3
from gturtle import *
morla = Turtle()
count = 0
while count < 4:
morla.forward(50)
morla.right(90)
count = count + 1
Aufgabe H4
count = 1
summe = 0
while count <= 100:
summe = summe + count
count = count + 1
print(summe)
Aufgabe H5
count = 1
while count <= 100:
print(count * 7)
count = count + 1
Aufgabe H6
from gturtle import *
morla = Turtle()
radius = 10
winkel = 180
morla.setPenColor("blue")
while radius <= 50:
morla.rightArc(radius, winkel)
radius = radius + 10
morla.setPenColor("red")
while radius < 100:
morla.rightArc(radius, winkel)
radius = radius + 10
Aufgabe H7
from gturtle import *
morla = Turtle()
radius = 100
winkel = 60
count = 0
while count < 6:
morla.setPenColor("blue")
morla.rightArc(radius, winkel)
morla.setPenColor("red")
morla.dot(20)
count = count + 1
Aufgabe H8
from gturtle import *
morla = Turtle()
count1 = 0
while count1 < 6:
morla.forward(100)
morla.right(60)
count2 = 0
while count2 < 6:
morla.forward(30)
morla.right(60)
count2 = count2 + 1
count1 = count1 + 1
Aufgabe H9
count = 1
while count < 50:
if count % 7 == 0:
print("Bösi")
else:
print(count)
count = count + 1
Aufgabe H10
count = 1
while count < 10:
print(f"{count} mal {count} gibt {count*count}")
count = count + 1
Aufgabe H11
geheimzahl = 2
count = 1
vermutung = input("Errate die Geheimzahl zwischen 1 und 12:")
while vermutung != geheimzahl:
count = count + 1
vermutung = input("Errate die Geheimzahl zwischen 1 und 12:")
print(f"Die Zahl {geheimzahl} ist richtig. Du hast {count} Versuche gebraucht.")
Aufgabe H12 Version 1
faktor = 1
produkt = 0
reihe = input("Welche Reihe (1-9)?")
while faktor <= 10:
produkt = reihe * faktor
print(produkt)
faktor = faktor + 1
Aufgabe H12 Version 2
faktor = 1
produkt = 0
anz_vierx = 0
summe = 0
reihe = input("Welche Reihe (1-9)?")
while faktor <= 10:
produkt = reihe * faktor
print(produkt)
faktor = faktor + 1
if produkt % 4 == 0:
anz_vierx = anz_vierx + 1
summe = summe + produkt
print(f"In den ersten zehn Zahlen der {reihe}-Reihe hat es {anz_vierx} Vielfache von 4.")
print(f"Die Summe der ersten zehn Zahlen der {reihe}-Reihe ist {summe}")
Aufgabe H12 Version 3
faktor = 1
produkt = 0
anz_vierx = 0
summe = 0
reihe = 0
while not 0 < reihe < 10:
reihe = input("Welche Reihe (1-9)?")
while faktor <= 10:
produkt = reihe * faktor
print(produkt)
faktor = faktor + 1
if produkt % 4 == 0:
anz_vierx = anz_vierx + 1
summe = summe + produkt
print(f"In den ersten zehn Zahlen der {reihe}-Reihe hat es {anz_vierx} Vielfache von 4.")
print(f"Die Summe der ersten zehn Zahlen der {reihe}-Reihe ist {summe}")
Aufgabe H13
from gturtle import *
morla = Turtle()
morla.hideTurtle()
n_stars = input("Wie viele Sterne isst du?")
x_pos = 0
count_stars = 0
while count_stars < n_stars:
# Position des Sterns setzen:
morla.setPos(x_pos, 0)
x_pos = x_pos + 150
# Stern zeichnen:
count_side = 0
while count_side < 5:
morla.forward(100)
morla.left(144)
count_side = count_side + 1
count_stars = count_stars + 1
Aufgabe H13 – Optional 1
from gturtle import *
morla = Turtle()
morla.hideTurtle()
n_stars = input("Wie viele Sterne isst du?")
x_pos = 0
y_pos = 0
count_stars = 1
while count_stars <= n_stars:
# Position des Sterns setzen:
morla.setPos(x_pos, y_pos)
# ...alle drei Sterne eine neue Reihe beginnen:
if count_stars % 3 == 0:
x_pos = 0
y_pos = y_pos - 150
else:
x_pos = x_pos + 150
# Stern zeichnen:
count_side = 0
while count_side < 5:
morla.forward(100)
morla.left(144)
count_side = count_side + 1
count_stars = count_stars + 1
Aufgabe H13 – Optional 2
from gturtle import *
morla = Turtle()
morla.hideTurtle()
n_stars = input("Wie viele Sterne isst du?")
# Anzahl Spalten für Quadrat ermitteln:
columns = 0
square_columns = 0
while square_columns < n_stars:
columns = columns + 1
square_columns = columns**2
x_pos = 0
y_pos = 0
count_stars = 1
while count_stars <= n_stars:
# Position des Sterns setzen:
morla.setPos(x_pos, y_pos)
# ...alle [columns] Sterne eine neue Reihe beginnen:
if count_stars % columns == 0:
x_pos = 0
y_pos = y_pos - 150
else:
x_pos = x_pos + 150
# Stern zeichnen:
count_side = 0
while count_side < 5:
morla.forward(100)
morla.left(144)
count_side = count_side + 1
count_stars = count_stars + 1
Aufgaben I
Aufgabe I1
while True:
number = input("Gib eine negative Zahl ein.")
if number < 0:
break
else:
print("Falsch. Try again!")
print("Korrekt!")
Aufgabe I2
while True:
eingabe = input("Gib das geheime Passwort ein")
if eingabe == "Spaghetti":
print("Korrekt. Zutritt gewährt")
break
else:
print("Falsch. Zugang verweigert. Try again!")
Aufgabe I3
summe = 0
while True:
eingabe = input("Gib Zahl ein, die dazu addiert werden soll. Abbrechen mit 'q'.")
if eingabe == 'q':
break
summe = summe + eingabe
print(f"Die Summe bisher ist: {summe}")
print(f"Die finale Summe ist: {summe}")
Aufgabe I4
geheimzahl = 37
versuche = 0
max_versuche = 7
while versuche < max_versuche:
tipp = input(f"Versuch {versuche + 1}: ")
versuche = versuche + 1
if tipp > geheimzahl:
print("Zu hoch!")
elif tipp < geheimzahl:
print("Zu tief!")
else:
print(f"Richtig! Du hast die Zahl in {versuche} Versuchen erraten.")
break
# Option Game over
if versuche == max_versuche and tipp != geheimzahl:
print("Game over.")
Aufgaben Z
Aufgabe Z1
import random
min = 1
max = 12
count = 0
while count < 5:
zahl1 = random.randint(min, max)
zahl2 = random.randint(min, max)
resultat = input(f"Was gibt {zahl1} plus {zahl2}?")
if resultat == zahl1 + zahl2:
print("richtig")
else:
print("falsch")
count = count + 1
print("Fertig")
Aufgabe Z2
import random
min = 1
max = 12
count = 0
count_correct = 0
while count < 5:
zahl1 = random.randint(min, max)
zahl2 = random.randint(min, max)
resultat = input(f"Was gibt {zahl1} plus {zahl2}?")
if resultat == zahl1 + zahl2:
print("richtig")
count_correct = count_correct + 1
elif resultat == "q":
break
else:
print("falsch")
count = count + 1
print(f"Fertig. Du hast {count_correct} von {count} Aufgaben richtig gelöst.")
Aufgabe Z3
import random
min = 1
max = 12
count = 0
count_correct = 0
while True:
zahl1 = random.randint(min, max)
zahl2 = random.randint(min, max)
resultat = input(f"Was gibt {zahl1} plus {zahl2}?")
if resultat == zahl1 + zahl2:
playTone(440, 250)
print("richtig")
count_correct = count_correct + 1
elif resultat == "q":
break
else:
playTone(262, 250)
print("falsch")
count = count + 1
ratio = count_correct / count * 100
print(f"Fertig. Du hast {count} Aufgaben gelöst – davon {ratio:.1f} % richtig.")
Aufgabe Z4
import random
min = 1
max = 12
count = 0
count_correct = 0
while True:
zahl1 = random.randint(min, max)
zahl2 = random.randint(min, max)
operator = random.randint(1, 4)
if operator == 1:
resultat = zahl1 + zahl2
text = f"Was gibt {zahl1} plus {zahl2}?"
elif operator == 2:
resultat = zahl1 - zahl2
text = f"Was gibt {zahl1} minus {zahl2}?"
elif operator == 3:
resultat = zahl1 * zahl2
text = f"Was gibt {zahl1} mal {zahl2}?"
else:
resultat = zahl1 % zahl2
text = f"Was gibt {zahl1} modulo {zahl2}?"
eingabe = input(text)
if eingabe == resultat:
print("richtig")
count_correct = count_correct + 1
elif eingabe == "q":
break
else:
print("falsch")
count = count + 1
ratio = count_correct / count * 100
print(f"Fertig. Du hast {count} Aufgaben gelöst – davon {ratio:.1f} % richtig.")