2016-04-04 4 views
0
while True: 
    value_1 = raw_input (" Please Enter the price in total cents or type 'done' to exit: ") 
    if value_1 == "done" :  
     print " Thank you,Good-Bye!" 
     break 
    else: 
     value_1 = int(value_1) 
     if value_1 % 5 == 0: 
      continue 
     else: 
      print "\n Please Re-enter the Price in multiples of 5, Thank you!" 
    if value_1 % 100 == 2 : 
      print "x" 

Check für Screenshot enter image description here Wenn ich eine Nummer mehr von 5 eingeben sollte es weiterhin laufen, aber seine wieder zurück nach oben oder sagen, wenn ich 200 eingeben sollte es drucken annimmt x aber es tut nichts seine Aufforderung erneut für die BenutzereingabeTeilbarkeit Ausgabe

+0

ich will drucken eigentlich e nter "200" und "x" drucken –

+2

continue geht zurück zum Anfang der while-Schleife. – idjaw

+0

Bitte beschreiben Sie, was Sie eigentlich vorhaben und wie es nicht funktioniert. – roadrunner66

Antwort

0

Also, wie Sie vielleicht herausgefunden haben, macht der "weiter" -Befehl nicht Ihren Code weiter zum nächsten Schritt, aber es bringt es zurück zu den Beginn der Schleife. Wenn Sie also eine Zahl eingeben, die durch 5 teilbar ist, bringt Sie Ihr Code zurück zum Anfang der Schleife und implementiert die zweite Prüfung nicht.

Das zweite Problem ist, dass, wenn ich das richtig verstehe, dass Sie das Skript wollen „x“ zu drucken, wenn Sie 200 eingeben, ist, dass die zweite Prüfung

if value_1 % 100 == 2 : 

überprüft, ob der Rest der Zahl, wenn geteilt um 100 ist 2. Und, vor dieser Überprüfung, Sie überprüft, ob die Zahl durch 5 teilbar war, werden Sie nie das Programm zum Ausdrucken "x" bekommen. Was Sie wollen, ist

if value_1/100 == 2 

Zusätzlich zu umgehen, dass „weiter“ Problem, nur Nest die beiden Kontrollen wie diese

if value_1 % 5 == 0: 
    if value_1/100 == 2 : 
     print "x" 
    else: 
     print "\n Please Re-enter the Price in multiples of 5, Thank you!" 

Damit wenn Sie ein Vielfaches von 5 eingeben, es Sie zurück bringt auf die Eingabeaufforderung, und wenn Sie 200 eingeben, wird es „x“

0

ändern Sie den Code wie folgt

while True: 
    value_1 = raw_input (" Please Enter the price in total cents or type 'done' to exit: ") 
    if value_1 == "done" :  
     print " Thank you,Good-Bye!" 
     break 
    else: 
     value_1 = int(value_1) 
     if value_1 % 5 != 0: 
      print "\n Please Re-enter the Price in multiples of 5, Thank you!" 
      continue 
     if value_1/100 == 2 : 
      print "x" 
+0

habe es bro! Vielen Dank! –

+0

bro "" drucken 'Für ein $', Float (Wert_1)/100, 'Sie brauchen:' "" Ich möchte einen Float-Ausgang. für "float (wert_1)/100" Es funktioniert gut, wenn ich 125 oder 325 eingeben (1.25 und 3.25) aber wenn ich 350 gebe, gibt es nur 3.5 als Ausgabe. Ich brauche 3.50 Was kann ich tun? @harshavardhan konakanchi –

+0

@KishanJangam drucken ("% .2f"% (Wert_1/200)) sollte funktionieren –