Aufwärmen · Aufgabe 1 von 7
Aufwärmen aus Lektion B1.4: Was gibt das aus?
nums = [1, 2, 3]
nums.append(len(nums))
print(nums)// B1.5 · ca. 30 Min. · Einstieg
Nach dieser Lektion schreiben Sie ein Programm, das nach Zahlen fragt, Schritte mit einer while-Schleife wiederholt und ein sauberes Ergebnis ausgibt: einen Trinkgeldrechner in drei Schritten.
Lektion 5 von 5 in B1 Erste Schritte
Danach können Sie
Aufwärmen · Aufgabe 1 von 7
nums = [1, 2, 3]
nums.append(len(nums))
print(nums)Vorhersagen · Aufgabe 2 von 7
a, b = 0, 1
while a < 10:
print(a, end=" ")
a, b = b, a + bÜben · Aufgabe 3 von 7
count = 3
while count ____ 0:
print(count)
count = count - 1Üben · Aufgabe 4 von 7
x, y = 1, 2
x, y = y, x
print(x, y)Üben · Aufgabe 5 von 7
Denksport · Aufgabe 6 von 7
price = input()
print(price * 2)Anwenden · Aufgabe 7 von 7
Prüfen Sie Ihr Ergebnis anhand dieser Liste
Lesen Sie das ausgearbeitete Beispiel und lösen Sie dann die Übungen. Ihr Code läuft in Ihrem Browser oder auf Ihrem Computer und wird nie hochgeladen.
Ausgearbeitetes Beispiel
Ein Seerosenblatt bedeckt 1 % eines Teichs und verdoppelt seine Größe jeden Tag. Nach wie vielen Tagen ist der ganze Teich bedeckt? Die while-Schleife wiederholt das Verdoppeln, solange weniger als 100 % bedeckt sind, und gibt jeden Tag in einer Zeile aus. Eine Mehrfachzuweisung aktualisiert Fläche und Tageszahl zusammen. Ändern Sie den Startwert 1.0 in 5.0 und starten Sie erneut.
main.py
# How many days until a doubling lily pad covers the pond?
covered, day = 1.0, 0 # percent of the pond, days passed
while covered < 100:
print(covered, end=" ")
covered, day = covered * 2, day + 1
print()
print("Full after", day, "days")
Ausführen mit
python main.pyAusgabe
1.0 2.0 4.0 8.0 16.0 32.0 64.0
Full after 7 daysTab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser Python herunter (bis zu 6.5 MB) und speichert es im Cache. Ihr Code bleibt auf Ihrem Gerät.
Übung 1 von 3
Das Programm liest den Rechnungsbetrag mit input(). Wandeln Sie ihn mit float() in eine Zahl um und geben Sie das Trinkgeld von 15 % und die Summe aus, beide auf 2 Nachkommastellen gerundet. Bei 40: Tip: 6.0 Total: 46.0 Verwenden Sie input() ohne Aufforderungstext, damit nur diese zwei Zeilen erscheinen.
Tab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser Python herunter (bis zu 6.5 MB) und speichert es im Cache. Ihr Code bleibt auf Ihrem Gerät.
input() liefert einen String. float(input()) liefert eine Zahl, mit der Sie rechnen können.
15 % der Rechnung sind bill * 0.15; round(wert, 2) behält zwei Nachkommastellen.
tip = round(bill * 0.15, 2), dann print("Total:", round(bill + tip, 2)).
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
bill = float(input())
tip = round(bill * 0.15, 2)
print("Tip:", tip)
print("Total:", round(bill + tip, 2))
Installieren Sie Python 3.14 oder neuer. Speichern Sie diese Dateien in einem Ordner, öffnen Sie dort ein Terminal und führen Sie die Befehle unten aus.
main.py
bill = input()
# Turn bill into a number, then print the 15 % tip and the total.
print("Tip:", bill)
test_main.py
from learnrun import run_main
def tip_for(bill):
return run_main(f"{bill}\n").strip().splitlines()
def test_forty():
"""Eine Rechnung von 40 ergibt 6.0 Trinkgeld"""
got = tip_for(40)
assert got == ["Tip: 6.0", "Total: 46.0"], f"bei 40 gab das Programm {got!r} aus"
def test_hundred():
"""Eine Rechnung von 100 ergibt 15.0 Trinkgeld"""
got = tip_for(100)
assert got == ["Tip: 15.0", "Total: 115.0"], f"bei 100 gab das Programm {got!r} aus"
def test_decimals():
"""Eine Rechnung von 12.4 ergibt 1.86 Trinkgeld"""
got = tip_for(12.4)
assert got == ["Tip: 1.86", "Total: 14.26"], f"bei 12.4 gab das Programm {got!r} aus"
Unter macOS und Linux tippen Sie python3, wo in diesen Befehlen python steht, wie in der ersten Lektion.
Programm ausführen:
python main.pyPrüfungen ausführen (learnrun.py muss im selben Ordner liegen):
python learnrun.py testlearnrun.py herunterladenÜbung 2 von 3
Jetzt liest das Programm drei Zeilen: den Betrag, das Trinkgeld in Prozent und die Zahl der Personen. Geben Sie Trinkgeld, Summe und den Anteil pro Person aus, alles auf 2 Nachkommastellen gerundet. Bei 40, 15 und 4: Tip: 6.0 Total: 46.0 Each: 11.5
Tab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser Python herunter (bis zu 6.5 MB) und speichert es im Cache. Ihr Code bleibt auf Ihrem Gerät.
Jedes input() liest die nächste Zeile, der Reihe nach: Betrag, Prozent, Personen. Wandeln Sie alle drei mit float() um.
percent Prozent der Rechnung sind bill * percent / 100.
Jede Person zahlt round(total / people, 2).
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
bill = float(input())
percent = float(input())
people = float(input())
tip = round(bill * percent / 100, 2)
total = round(bill + tip, 2)
print("Tip:", tip)
print("Total:", total)
print("Each:", round(total / people, 2))
Installieren Sie Python 3.14 oder neuer. Speichern Sie diese Dateien in einem Ordner, öffnen Sie dort ein Terminal und führen Sie die Befehle unten aus.
main.py
bill = float(input())
percent = input()
people = input()
tip = round(bill * 0.15, 2)
total = round(bill + tip, 2)
print("Tip:", tip)
print("Total:", total)
test_main.py
from learnrun import run_main
def split(bill, percent, people):
return run_main(f"{bill}\n{percent}\n{people}\n").strip().splitlines()
def test_fifteen_percent():
"""40 mit 15 % für 4 Personen"""
got = split(40, 15, 4)
assert got == ["Tip: 6.0", "Total: 46.0", "Each: 11.5"], f"bei 40, 15 und 4 gab das Programm {got!r} aus"
def test_other_percent():
"""100 mit 20 % für 3 Personen"""
got = split(100, 20, 3)
assert got == ["Tip: 20.0", "Total: 120.0", "Each: 40.0"], f"bei 100, 20 und 3 gab das Programm {got!r} aus"
def test_decimals():
"""12.4 mit 10 % für 2 Personen"""
got = split(12.4, 10, 2)
assert got == ["Tip: 1.24", "Total: 13.64", "Each: 6.82"], f"bei 12.4, 10 und 2 gab das Programm {got!r} aus"
Unter macOS und Linux tippen Sie python3, wo in diesen Befehlen python steht, wie in der ersten Lektion.
Programm ausführen:
python main.pyPrüfungen ausführen (learnrun.py muss im selben Ordner liegen):
python learnrun.py testlearnrun.py herunterladenÜbung 3 von 3
Lesen Sie den Betrag und geben Sie dann mit einer while-Schleife das Trinkgeld für 10 %, 15 % und 20 % aus, je eine Zeile, auf 2 Nachkommastellen gerundet. Bei 40: 10% 4.0 15% 6.0 20% 8.0 print(percent, end="% ") schreibt die Prozentzahl und das %-Zeichen, ohne die Zeile zu beenden.
Tab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser Python herunter (bis zu 6.5 MB) und speichert es im Cache. Ihr Code bleibt auf Ihrem Gerät.
Die Schleife soll laufen, solange percent höchstens 20 ist: while percent <= 20:
Rücken Sie beide print()-Zeilen ein und addieren Sie am Ende des Rumpfs 5 zu percent.
Ohne percent = percent + 5 in der Schleife bleibt die Bedingung wahr, und die Schleife endet nie.
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
bill = float(input())
percent = 10
while percent <= 20:
print(percent, end="% ")
print(round(bill * percent / 100, 2))
percent = percent + 5
Installieren Sie Python 3.14 oder neuer. Speichern Sie diese Dateien in einem Ordner, öffnen Sie dort ein Terminal und führen Sie die Befehle unten aus.
main.py
bill = float(input())
percent = 10
# Repeat for 10, 15 and 20 percent.
print(percent, end="% ")
print(round(bill * percent / 100, 2))
test_main.py
from learnrun import run_main
def table(bill):
return run_main(f"{bill}\n").strip().splitlines()
def test_three_lines():
"""Die Tabelle hat je eine Zeile für 10, 15 und 20 Prozent"""
got = table(40)
assert len(got) == 3, f"bei 40 gab das Programm {len(got)} Zeile(n) aus, erwartet: 3: {got!r}"
def test_forty():
"""Eine Rechnung von 40 ergibt 4.0, 6.0 und 8.0"""
got = table(40)
assert got == ["10% 4.0", "15% 6.0", "20% 8.0"], f"bei 40 gab das Programm {got!r} aus"
def test_decimals():
"""Eine Rechnung von 12.4 ergibt 1.24, 1.86 und 2.48"""
got = table(12.4)
assert got == ["10% 1.24", "15% 1.86", "20% 2.48"], f"bei 12.4 gab das Programm {got!r} aus"
Unter macOS und Linux tippen Sie python3, wo in diesen Befehlen python steht, wie in der ersten Lektion.
Programm ausführen:
python main.pyPrüfungen ausführen (learnrun.py muss im selben Ordner liegen):
python learnrun.py testlearnrun.py herunterladenbill = "40" # what input() gives you: a string
print(bill * 1.15)
Was Python ausgibt
TypeError: can't multiply sequence by non-int of type 'float'Warum, und die Lösung
input() liefert einen String, auch wenn der Nutzer Ziffern tippt. Ein String lässt sich mit einem int wiederholen, aber nicht mit einem float multiplizieren. Wandeln Sie die Eingabe gleich beim Lesen um: bill = float(input()).
price = float("4,50")
Was Python ausgibt
ValueError: could not convert string to float: '4,50'Warum, und die Lösung
Python schreibt Dezimalzahlen mit Punkt, und float() akzeptiert kein Komma. Tippen Sie 4.50, wenn das Programm nach einer Zahl fragt. Später lernen Sie, diesen Fehler abzufangen und erneut zu fragen.
n = 3
while n > 0:
print(n)
Was Python ausgibt
IndentationError: expected an indented block after 'while' statement on line 2Warum, und die Lösung
Die Zeile nach while ... : muss eingerückt sein, denn an der Einrückung erkennt Python, welche Zeilen zur Schleife gehören. Rücken Sie den Rumpf um vier Leerzeichen ein.
n = 3
while n > 0:
print(n)
n = n - 1
Was Python ausgibt
IndentationError: unexpected indentWarum, und die Lösung
Jede Zeile eines Rumpfs muss genau gleich weit eingerückt sein. Hier hat die letzte Zeile zwei Leerzeichen zu viel. Nehmen Sie vier Leerzeichen pro Ebene und lassen Sie den Editor sie einfügen.
Python im Browser: Pyodide 314.0.7, MPL-2.0. Lizenz und Quellcode
5 Fragen, ohne Hinweise. Ab 80 % ist die Lektion abgeschlossen.
Erledigen Sie zuerst alle Aufgaben oben, um das Abschlussquiz freizuschalten.