Rechner mit mehr als 2 Zahlen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gonzo123
User
Beiträge: 3
Registriert: Montag 24. September 2018, 10:57

Dienstag 16. Oktober 2018, 07:10

Hallo zusammen,

ich habe ein kleines Programm geschrieben, welches mehrere Zahlen subtraiert bis man eine 0 eingibt.

Code: Alles auswählen

differenz = 0

while True:
    zahl = int(input('Zahl : '))
    if zahl != 0:
        differenz -= zahl
    else: 
        zahl == 0
        break
print('Ergebnis = ',differenz)
Gebe ich dann z.B. 1.Zahl 10 und 2.Zahl 5 ein bekomme ich als Ergebnis -15.
Bei der Addition += funktioniert alles. Habe nach Lösungen gesucht aber nichts gefunden.
Stehe jetzt irgendwie total auf dem Schlauch.
Für die Hilfe vielen Dank im Voraus.
__deets__
User
Beiträge: 3693
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dienstag 16. Oktober 2018, 07:33

Du subtrahierst doch immer von 0. was soll dann anderes passieren? Du brauchst eine fallunterscheidung zwischen erster Zahl, die dundir merkst, und allen anderen, die du dann davon subtrahierst.

Dein else ist übrigens komplett überflüssig.
Sirius3
User
Beiträge: 8595
Registriert: Sonntag 21. Oktober 2012, 17:20

Dienstag 16. Oktober 2018, 19:49

__deets__: das else braucht man für das break. Wobei ich hier die Bedingung umdrehen würde und dann den neuen else-Block (alten if-Block) ausrücken würde.

Du kannst entweder die erste Zahl außerhalb der while-Schleife einlesen oder `difference` nicht mit 0 sondern mit None initialisieren und dann darauf innerhalb der while-Schleife prüfen.
Benutzeravatar
bwbg
User
Beiträge: 381
Registriert: Mittwoch 23. Januar 2008, 13:35

Dienstag 16. Oktober 2018, 20:00

Zu Deinem Verständnis: Du rechnest mir einem Wert mehr, als die bewusst ist.

Addition: 0 + a + b + ...
Subtraktion: 0 - a - b - ...

Das funktioniert bei der Addition nur, weil diese kommutativ ist. Die Subtraktion kann man auch als Addition darstellen, dann wird es klarer:

0 + (-a) + (-b) + ...

Grüße ...
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Antworten