Programming lesson
Wissenschaftlicher Taschenrechner in Python bauen – Schritt-für-Schritt-Tutorial für COP3504C
Lerne, wie du einen wissenschaftlichen Konsolenrechner in Python programmierst – mit Menüsteuerung, Schleifen, Typkonvertierung und Datenspeicherung. Perfekt für dein Lab 1 in COP3504C.
Einleitung: Dein erster wissenschaftlicher Rechner in Python
In diesem Tutorial zeige ich dir, wie du einen voll funktionsfähigen wissenschaftlichen Taschenrechner als Konsolenanwendung in Python baust. Dieses Projekt ist typisch für das COP3504C Lab 1 und trainiert grundlegende Programmierkonzepte wie Schleifen, Typkonvertierung und Datenspeicherung. Egal ob du für dein Studium lernst oder einfach deine Python-Kenntnisse vertiefen möchtest – dieser Leitfaden hilft dir, die Anforderungen zu verstehen und umzusetzen.
Stell dir vor, du entwickelst eine App wie einen KI-gestützten Sprachassistenten, der Berechnungen durchführt – nur dass wir hier die manuelle Steuerung übernehmen. Oder denk an einen Finanzrechner, der Zinseszinsen berechnet. Die Prinzipien sind dieselben.
Was du lernen wirst
- Ein Menüsystem mit Benutzereingaben erstellen
- Verschiedene arithmetische Operationen implementieren (Addition, Subtraktion, Multiplikation, Division, Potenz, Logarithmus)
- Den Durchschnitt aller Berechnungen anzeigen
- Mit RESULT das vorherige Ergebnis wiederverwenden (Bonus)
- Fehlerbehandlung bei ungültigen Eingaben
Grundgerüst des Programms
Beginne mit dem Hauptprogramm, das nur ausgeführt wird, wenn die Datei direkt gestartet wird. Verwende dazu die if __name__ == '__main__'-Abfrage. Keine globalen Variablen – alle Daten werden innerhalb von Funktionen oder als lokale Variablen gehalten.
def main():
current_result = 0.0
total_sum = 0.0
calc_count = 0
# ...
if __name__ == '__main__':
main()
Das Menü anzeigen
Das Menü wird nach jeder Aktion (außer bei Option 7) erneut angezeigt. Die Ausgabe muss exakt dem Format entsprechen:
Current Result: 0.0
Calculator Menu
-------------
0. Exit Program
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Exponentiation
6. Logarithm
7. Display Average
Enter Menu Selection:
Verwende dazu eine Funktion display_menu(), die das Menü ausgibt.
Eingabe und Verarbeitung der Menüauswahl
Lies die Benutzereingabe als Integer. Wenn die Auswahl zwischen 1 und 6 liegt, fordere zwei Operanden an. Für Option 7 zeige den Durchschnitt an. Bei 0 beende das Programm. Bei ungültiger Eingabe zeige eine Fehlermeldung.
selection = int(input("Enter Menu Selection: "))
if selection == 0:
print("Thanks for using this calculator. Goodbye!")
break
elif 1 <= selection <= 6:
# Operanden einlesen
elif selection == 7:
# Durchschnitt anzeigen
else:
print("Error: Invalid selection!")
Operationen implementieren
Für jede Operation (1–6) schreibst du eine eigene Funktion oder eine if-elif-Kette. Achte auf Typkonvertierung: Eingaben sind Strings, die du mit float() in Fließkommazahlen umwandelst. Bei Division durch Null und Logarithmus mit Basis ≤ 0 oder Argument ≤ 0 solltest du Fehler abfangen.
if selection == 1:
result = op1 + op2
elif selection == 2:
result = op1 - op2
elif selection == 3:
result = op1 * op2
elif selection == 4:
if op2 == 0:
print("Error: Division by zero!")
continue
result = op1 / op2
elif selection == 5:
result = op1 ** op2
elif selection == 6:
if op1 <= 0 or op2 <= 0:
print("Error: Invalid input for logarithm!")
continue
result = math.log(op2, op1)
Vergiss nicht, import math am Anfang der Datei einzufügen.
Durchschnitt berechnen
Speichere die Summe aller Ergebnisse und die Anzahl der Berechnungen. Bei Option 7 gibst du die Summe, Anzahl und den auf zwei Dezimalstellen gerundeten Durchschnitt aus. Wurde noch keine Berechnung durchgeführt, erscheint die Meldung „Error: No calculations yet to average!“
if calc_count == 0:
print("Error: No calculations yet to average!")
else:
average = total_sum / calc_count
print(f"Sum of calculations: {total_sum}")
print(f"Number of calculations: {calc_count}")
print(f"Average of calculations: {average:.2f}")
Bonus: RESULT verwenden
Für Extra-Punkte kannst du erlauben, dass der Benutzer RESULT (Groß-/Kleinschreibung beachten) anstelle eines Operanden eingibt. Ersetze diesen Wert durch current_result (oder 0, falls noch keine Berechnung stattfand).
op1_str = input("Enter first operand: ")
if op1_str.upper() == "RESULT":
op1 = current_result if calc_count > 0 else 0.0
else:
op1 = float(op1_str)
Beispielablauf
Hier siehst du, wie das Programm in der Konsole aussehen sollte (Auszug):
Current Result: 0.0
Calculator Menu
-------------
0. Exit Program
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Exponentiation
6. Logarithm
7. Display Average
Enter Menu Selection: 1
Enter first operand: 0.5
Enter second operand: -2.5
Current Result: -2.0
...
Häufige Fehler vermeiden
- Exakte Ausgabe: Jedes Leerzeichen, jeder Zeilenumbruch und jede Zahl muss genau wie in der Vorgabe sein. Nutze die Beispielausgabe als Referenz.
- Typkonvertierung: Vergiss nicht, Eingaben in
floatumzuwandeln, sonst erhältst du String-Verkettung statt Addition. - Schleifenlogik: Das Menü muss nach jeder Aktion (außer bei 7) erneut angezeigt werden, nicht nur einmal.
- Keine globalen Variablen: Definiere
current_result,total_sumundcalc_countinnerhalb vonmain().
Zusammenfassung
Mit diesem Tutorial hast du alle Werkzeuge, um das COP3504C Lab 1 erfolgreich zu lösen. Du hast gelernt, wie man ein Menüsystem aufbaut, arithmetische Operationen integriert, den Durchschnitt berechnet und sogar einen Bonus implementiert. Diese Konzepte sind fundamental für viele Python-Projekte, egal ob du einen Wissenschaftlichen Rechner, eine KI-gestützte App oder ein Finanztool entwickelst.
Viel Erfolg bei deiner Abgabe auf ZyLabs!