Aufgabe Informatik While-Loop

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.
JoinZ
User
Beiträge: 15
Registriert: Mittwoch 24. August 2011, 15:26

gut zu wissen. dankeschön hat mir sehr geholfen.
aber so bekomme ich immer die Fehlermeldung das summe nicht definiert sei. warum?

Code: Alles auswählen

while True:
    preis = float(raw_input("Preis:"))
    summe += preis
    if preis == 0:
        break
    
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Du musst ``summe`` schon vor der Schleife definieren. Keine Ahnung was Hyperion da gerade vorschwebt.
JoinZ
User
Beiträge: 15
Registriert: Mittwoch 24. August 2011, 15:26

ja eben das versteh ich auch nicht
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Kleiner Denkfehler von mir - natürlich aus pädagogischer Sicht eingebaut :-P
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
JoinZ
User
Beiträge: 15
Registriert: Mittwoch 24. August 2011, 15:26

Natürlich ;D
JoinZ
User
Beiträge: 15
Registriert: Mittwoch 24. August 2011, 15:26

Es tut sich ein neues Problem auf. Ich soll das programm so erweitern das ich zu jedem Artikelpreis auch die anzahl der gekauften artikel iengeben kann.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Und, wo ist das Problem? Du kannst Zahlen einlesen und eine Multiplikation solltest du auch so gerade noch hinbekommen.
Das Leben ist wie ein Tennisball.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ja und? Wo liegt da nun das Problem.

Du weißt jetzt, wie man numerische Werte abfragt und an einen Namen bindet.

Nun musst Du ja nur noch die Rechnung anpassen. Dazu musst Du ggf. "lernen", wie man multipliziert in Python ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
JoinZ
User
Beiträge: 15
Registriert: Mittwoch 24. August 2011, 15:26

Code: Alles auswählen

preis = 1
summe = 0
while True:
    preis = float(raw_input("Preis:"))
    summe = summe + preis
    anzahl = float(raw_input("Anzahl:"))

    if preis == 0:
        print summe*anzahl
        break
so klappts nicht
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Wieso ist das `print` wieder in der while-Schleife?

Überlege Dir doch erst einmal, wie die Rechnung auf dem Papier aussehen würde. Dann übertrage das auf die Berechnung in der Schleife.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
JoinZ
User
Beiträge: 15
Registriert: Mittwoch 24. August 2011, 15:26

Die rechnung ist nicht das problem. ich weiß nicht wie ich den befehl für die ausgabe gestalten soll.
BlackJack

@JoinZ: An der Anweisung für die Ausgabe ändert sich nichts. Aber an der Rechnung.
JoinZ
User
Beiträge: 15
Registriert: Mittwoch 24. August 2011, 15:26

preis = 1
summe = 0

Code: Alles auswählen

while True:
    preis = float(raw_input("Preis: "))
    summe = summe + preis
    anzahl = float(raw_input("Anzahl: "))
    summe = summe * anzahl
    

    if anzahl == 0:
        break
    

print summe
mhmm

Code: Alles auswählen

 if anzahl == 0:
        break
doch hier muss ich iwas verändern wegen der ausgabe aber ich weiß nciht was :(
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Doch, das weißt Du! Tipp: Wenn ich zwei Äpfel für je einen Euro und drei Birnen für je 2 Euro bei Dir kaufe, wie rechnest Du das?

Mach Dir nichts drauss: Wenn man was Neues lernt, sieht man manchmal den Wald vor lauter Bäumen nicht.

HTH
Christian
JoinZ
User
Beiträge: 15
Registriert: Mittwoch 24. August 2011, 15:26

CM hat geschrieben: Mach Dir nichts drauss: Wenn man was Neues lernt, sieht man manchmal den Wald vor lauter Bäumen nicht.

ja stimmt ich komm aber einfach nicht weiter.
BlackJack

@JoinZ: Dann geh das doch einfach mal Schritt für Schritt durch. Arbeite das Programm mal selber im Kopf ab, mit einem Blatt Papier um jeweils zu jedem Zeitpunkt den aktuellen Wert der Variablen aufzuschreiben.
Antworten