Voraussetzungen
Du kennst die Inhalte aus Teil 4 und arbeitest mit einem lokalen Python-3-Interpreter (ab Python 3.10), beispielsweise in Thonny.
Das lernst du in dieser Lektion
- Rechenoperatoren unterscheiden.
- Einheiten umrechnen.
- Eingaben, Berechnung und Ausgabe gliedern.
Vom Gewicht zu den Materialkosten
Wir berechnen die reinen Filamentkosten eines Druckauftrags. Dazu benötigen wir Stückzahl, Gewicht pro Teil und Rollenpreis. Druckzeit, Strom, Ausschuss und Arbeitszeit bleiben bei dieser einfachen Übung unberücksichtigt.
| Operator | Beispiel | Ergebnis |
|---|---|---|
+ |
7 + 2 |
9 |
- |
7 - 2 |
5 |
* |
7 * 2 |
14 |
/ |
7 / 2 |
3.5 |
// |
7 // 2 |
3 |
% |
7 % 2 |
1 |
** |
2 ** 3 |
8 |
// rundet das Divisionsergebnis nach unten auf eine ganze Zahl ab; bei negativen Zahlen geht das in Richtung minus unendlich. % liefert den Rest. Beide sind beispielsweise nützlich, um vollständige Gruppen und übrig gebliebene Teile zu bestimmen.
Einheiten zuerst klären
Eine 1-kg-Rolle enthält 1000 g. Der Preis pro Gramm ist also Rollenpreis geteilt durch 1000. Bei einer anderen Rollengröße müssen wir das tatsächliche Nettogewicht verwenden. Eine leere Spule gehört nicht zum Filamentgewicht.
# Eingabewerte
anzahl = 4
gewicht_pro_teil_g = 18.5
rollenpreis_eur = 20.0
rollengewicht_g = 1000
# Berechnungen
gesamtgewicht_g = anzahl * gewicht_pro_teil_g
preis_pro_g = rollenpreis_eur / rollengewicht_g
materialkosten_eur = gesamtgewicht_g * preis_pro_g
# Ausgabe
print(f"Materialbedarf: {gesamtgewicht_g:.1f} g")
print(f"Materialkosten: {materialkosten_eur:.2f} Euro")
Speichere als materialkosten.py. Das Programm ermittelt 74.0 g und 1.48 Euro. Ändere anschließend die Stückzahl auf 8 und starte erneut: Beide Ergebnisse verdoppeln sich.
Reihenfolge und Klammern
Python beachtet Punkt vor Strich. 10 + 2 * 3 ergibt 16, (10 + 2) * 3 ergibt 36. Verwende Klammern, wenn sie die beabsichtigte Rechnung deutlicher machen. Für zehn Prozent Reserve kannst du das Gewicht mit 1.10 multiplizieren.
Zahlen sind nicht immer exakt
Gleitkommazahlen bilden viele Dezimalbrüche nur näherungsweise ab. 0.1 + 0.2 kann deshalb als 0.30000000000000004 erscheinen. Für unsere Materialschätzung reicht float. :.2f sorgt für eine lesbare Anzeige; eine professionelle Abrechnung kann andere Anforderungen an Rundung und Datentyp haben.
Eine Division durch 0 ist nicht möglich. Das Rollengewicht muss also größer als 0 sein. Wie ein Programm solche Voraussetzungen selbst prüft, lernst du im nächsten Teil.
Mitmach-Aufgabe
Berechne den Bedarf für 6 Teile zu je 25 g. Berücksichtige 10 Prozent Materialreserve. Eine Rolle mit 1000 g kostet 24 Euro. Gib Gewicht und Kosten aus.
Versuche die Aufgabe zuerst selbst. Vergleiche danach deinen Ansatz mit der Musterlösung. Andere Lösungen sind möglich, wenn sie dieselben Anforderungen erfüllen.
Musterlösung
anzahl = 6
gewicht_pro_teil_g = 25
reserve_faktor = 1.10
rollenpreis_eur = 24
rollengewicht_g = 1000
bedarf_g = anzahl * gewicht_pro_teil_g * reserve_faktor
kosten_eur = bedarf_g / rollengewicht_g * rollenpreis_eur
print(f"Bedarf mit Reserve: {bedarf_g:.1f} g")
print(f"Materialkosten: {kosten_eur:.2f} Euro")
Ergebnis prüfen
Die Ausgabe zeigt 165.0 g und 3.96 Euro. Prüfe die Rechnung einmal von Hand.
Typische Stolperstellen
^ ist in Python kein Potenzoperator; verwende **. Gramm und Kilogramm dürfen nicht ungeprüft gemischt werden. Formatierte Kosten sind Text für die Ausgabe.
Was du jetzt kannst
- Rechenoperatoren unterscheiden.
- Einheiten umrechnen.
- Eingaben, Berechnung und Ausgabe gliedern.
Passendes Cheatsheet
Zum Nachschlagen: Cheatsheet 04 – Python-Operatoren und Berechnungen. Dort findest du auch den vorhandenen PDF-Download.
Im nächsten Teil
In Teil 6 geht es um Entscheidungen mit if, elif und else. Lass dein Programm Werte vergleichen und abhängig vom Ergebnis unterschiedliche Schritte ausführen.
