Seite 1 von 1

Rechner mit mehr als 2 Zahlen

Verfasst: Dienstag 16. Oktober 2018, 07:10
von gonzo123
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.

Re: Rechner mit mehr als 2 Zahlen

Verfasst: Dienstag 16. Oktober 2018, 07:33
von __deets__
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.

Re: Rechner mit mehr als 2 Zahlen

Verfasst: Dienstag 16. Oktober 2018, 19:49
von Sirius3
__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.

Re: Rechner mit mehr als 2 Zahlen

Verfasst: Dienstag 16. Oktober 2018, 20:00
von bwbg
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 ...