Seite 1 von 1

While Schleife

Verfasst: Mittwoch 29. Oktober 2014, 19:06
von Göteborg
Guten Abend, ich bräuchte da noch einmal Hilfe. Und zwar muss ich folgende Aufgabe lösen:

- Schreiben Sie ein Programm, das eine Gleitkommazahl als Variable Guthaben entgegennimmt.
- Wenn diese Zahl größer als null ist, soll sie so lange um 12,25 Prozent vergrößert werden, wie ihr Wert kleiner als das Dreifache des Startwerts ist.
- Die Anzahl der Durchläufe soll in der Variablen n gespeichert werden.
- Geben Sie die beiden Variablen nach jeder Erhöhung mittels print(n,Guthaben) aus.


Bisher habe ich folgendes erreicht, aber ich weiß nicht, wie ich die Variable n einbauen soll und ich weiß auch nicht, warum er nicht nach dem zweiten Break aufhört, wenn das Guthaben bereits das Dreifache überschritten hat:

Code: Alles auswählen

Guthaben = float(input("Bitte geben Sie Ihr Guthaben ein: "))

while True:
    if Guthaben <= 0:
        print("Falsches Guthaben eingegeben!")
        break
    
    else:
        
        Guthaben = Guthaben * 1.1225
        print("%.3f" %(Guthaben))
        if Guthaben >= Guthaben * 3:
            break
Vielleicht kann mir ja jemand weiterhelfen, danke schonmal im Vorraus!

Re: While Schleife

Verfasst: Mittwoch 29. Oktober 2014, 19:20
von BlackJack
@Göteborg: Welchen Wert müsste `Guthaben` denn haben das ``Guthaben >= Guthaben * 3`` ist? Da gibt es nur *einen einzigen* nämlich die 0, denn nur bei der gilt ``0 >= 0 * 3``. Falls Du das mit dem *Ausgangs*guthaben vergleichen willst, solltest Du Dir *das* vielleicht irgendwo merken. Zum Beispiel an einen Namen binden der danach *nicht* neue Werte zugewiesen bekommt.

Der erste Test gehört nicht in die Schleife. Die Eingabe ist entweder grösser als 0 oder nicht. Das muss man nicht in jedem Durchlauf testen.

Das `n` musst Du halt vor der Schleife initialisieren und in der Schleife hochzählen. Oder Du verwendest eine ``for``-Schleife über `itertools.count()`.

Re: While Schleife

Verfasst: Mittwoch 29. Oktober 2014, 20:52
von Göteborg
Okay, also besetze ich die Variablen als "Guthaben" und "NeuGuthaben":

Code: Alles auswählen

Guthaben = float(input("Bitte geben Sie Ihr Guthaben ein: "))

for Guthaben in range(Guthaben*3):
    print(Guthaben)

while True:
    if Guthaben < 0:
        print("Falsches Guthaben eingegeben!")
        break
    
    else:
        
        NeuGuthaben = Guthaben * 1.1225
        print("%.3f" %(NeuGuthaben))
        if NeuGuthaben > Guthaben * 3:
            break
Ich weiß jetzt nicht genau, wie und wo ich das "n" mit der for-Schleife einbauen soll. Habe nochmal ein bisschen gegoogelt und bin jetzt total verwirrt...

Code: Alles auswählen

    for n in range(Guthaben, Guthaben*3): 
        NeuGuthaben = Neuguthaben * 1.1225 
Die Schleife beginnt mit dem Wert "Guthaben", der beliebig eingesetzt werden kann und läuft solange, bis maximal Guthaben*3. Und es wird jede Variable "Neuguthaben" mit 1.1225 multipliziert... denke ich zumindest :lol: :K

Re: While Schleife

Verfasst: Mittwoch 29. Oktober 2014, 21:09
von Sirius3
@Göteborg: Hilf Dir die Ausgabe der ersten for-Schleife bei der Lösung Deines Problems? Und welchen Wert wird NeuGuthaben in jedem while-Schleifendurchgang haben?

Re: While Schleife

Verfasst: Mittwoch 29. Oktober 2014, 21:13
von cofi
Die `for`-Schleife mit `itertools.count` ist so gemeint:

Code: Alles auswählen

for n in itertools.count():
      #berechne  neues guthaben
      if large_enough(deposit):
          break

print("termination after %d rounds" % n)