Abschnitt 2 · Lektion 7
Synthese: Spritkostenrechner
Was kostet die Fahrt? Die Frage ist alt und vor jedem Urlaub wieder neu. Für ein kleines Werkzeug, das sie beantwortet, sind inzwischen alle Teile da: Werte mit Namen, Rechnen, Text, Umwandeln, Fragen. Zum ersten Mal entsteht daraus etwas, das man wirklich benutzen kann.
Erst der Plan
Bevor auch nur eine Zeile Code entsteht, lohnt sich ein Zettel mit drei Fragen. Was geht hinein? Was soll herauskommen? Und wie kommt man vom einen zum anderen?
Für die Spritkosten sieht das so aus:
- Hinein gehen drei Zahlen: die Strecke in Kilometern, der Verbrauch in Litern auf 100 Kilometer und der Preis für einen Liter.
- Heraus kommt ein Betrag in Euro, mit zwei Nachkommastellen, weil es um Geld geht.
- Dazwischen liegt eine Formel, die man sich einmal klarmacht. Der Verbrauch gilt für 100
Kilometer, also braucht die Fahrt
strecke * verbrauch / 100Liter. Und jeder Liter kostet den Literpreis.
Das klingt nach Schulaufgabe, und so soll es auch klingen. Viele Fehler in kleinen Programmen entstehen nicht beim Tippen, sondern weil vorher niemand aufgeschrieben hat, was eigentlich passieren soll. Mit dem Zettel in der Hand musst du danach nur noch übersetzen. Dieser Gedanke zieht sich durch den ganzen Kurs, und auch das Abschlussprojekt fängt mit so einem Zettel an.
Die Formel ausprobieren
Bevor das Programm fragt, kann man die Formel mit festen Zahlen ausprobieren. Dann weiß man, dass die Rechnung stimmt, bevor die Eingaben dazukommen.
strecke = 420
verbrauch = 5.8
literpreis = 1.79
liter = strecke * verbrauch / 100
kosten = liter * literpreis
print(f"{liter:.1f} Liter, {kosten:.2f} Euro") 420 Kilometer bei 5,8 Litern auf 100 Kilometer sind gut 24 Liter, und die kosten bei 1,79 Euro je Liter 43,60 Euro. Die Rechnung ist auf zwei Zeilen verteilt, erst die Liter, dann die Kosten. Schneller wird sie dadurch nicht, aber jedes Zwischenergebnis hat einen Namen, und das liest sich leichter. Und wenn etwas nicht stimmt, siehst du im Reiter Debug jeden Zwischenwert einzeln.
In der Ausgabe stehen die Liter mit einer Nachkommastelle, .1f, und das Geld mit zwei. Für den
Kurs ist das egal. Für jemanden, der die Zahl liest, nicht.
Eine Entscheidung vorweg
Die Aufgabe dieser Lektion hat eine Besonderheit. Bei langen Fahrten soll das Programm noch etwas mehr ausgeben. Dafür braucht es eine Zeile, die eigentlich erst in Abschnitt 3 dran ist. Hier kommt sie vorab, damit sich das Werkzeug auch wie eins anfühlt.
420 strecke = float(input("Strecke in km? "))
if strecke > 300:
print("Das ist eine lange Fahrt.")
print("Gute Fahrt!") if strecke > 300: heißt „wenn die Strecke größer als 300 ist“. Was darunter eingerückt steht,
also eine Stufe nach rechts, läuft nur dann. Was danach wieder ganz links steht, läuft immer. Mit
420 in eingabe.txt erscheinen beide Sätze, mit 120 nur noch die gute Fahrt.
Mehr musst du über if im Moment nicht wissen. Der Doppelpunkt am Ende der Zeile gehört dazu, die
Einrückung auch. Wenn du nach einem Doppelpunkt Enter drückst, rückt der Editor von selbst ein. Wie
es mit else und mehreren Fällen weitergeht, ist Thema von Abschnitt 3.
Was die Aufgabe will
Der Zettel von oben ist fast schon das Programm, und im Startcode wartet das if nur noch auf seine
Zeile. Geprüft wird mit einer langen Fahrt, bei der die Zeile je Person erscheinen muss, und mit
einer kurzen, bei der sie fehlen muss. Ein Werkzeug, das bei jeder Strecke dasselbe tut, wäre keins.
Zum Mitnehmen
Vor dem Code steht ein Zettel mit dem, was hineingeht, was herauskommt und welche Formel dazwischen liegt, und die Formel läuft zuerst mit festen Zahlen. Eine eingerückte Zeile unter einem if läuft nur bei langen Fahrten.
Jetzt du
Basis Konto, kostenlosZu dieser Lektion gehört eine Aufgabe. Du schreibst den Code selbst, und nach jedem Lauf sagt dir eine Prüfliste, was schon stimmt.
Dafür brauchst du das Basis Konto. Es kostet nichts, und ein Passwort gibt es auch nicht.
In diesem Kurs läuft dein Code auf einem Server. Dafür hat das Basis Konto 1 Stunde im Monat, mehr Zeit gibt es mit dem Premium Konto.
Was in dieser Lektion steckt
-
Artikel mit 2 Beispielen zum Ausprobieren
Steht hier, ohne Konto lesbar.
-
Aufgabe, dein Code läuft auf einem Server
Öffnet sich mit dem Basis Konto.