Assignment Chef icon Assignment Chef
All German tutorials

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.

wissenschaftlicher Taschenrechner Python COP3504C Lab 1 Python Konsolenrechner Menügesteuerter Rechner Python Schleifen Python Tutorial Typkonvertierung Python Datenspeicherung Python Durchschnitt berechnen Python Python Programmierung Studium Python Anfänger Projekt Python Rechner mit Logarithmus Python Potenzrechnung RESULT Befehl Python Python Übungsaufgabe Python Fehlerbehandlung ZyLabs Abgabe Python

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 float umzuwandeln, 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_sum und calc_count innerhalb von main().

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!