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.
Rapthor
User
Beiträge: 2 Registriert: Mittwoch 5. Oktober 2005, 13:14
Mittwoch 5. Oktober 2005, 13:22
Hallo,
ich habe eine kleine Applikation geschrieben und frage mich, warum die Bearbeitung niemals über die "while"-Schleife hinaus geht, obwohl man eine Ganzzahl (6) bzw. Kommazahl (3.1) eingibt:
Code: Alles auswählen
gueltig = False
while ~gueltig:
try:
eingabe = raw_input("Bitte Wert in Euro eingeben: ")
eingabe = float(eingabe)
gueltig = True
except ValueError:
print "Bitte eine Zahl eingeben!"
print "Der Betrag entspricht %f DM" %(eingabe*1.96)
Wer kann mir hier helfen?
Rapthor
Edit (Leonidas): Code in Python-Tags gesetzt.
heftic
User
Beiträge: 22 Registriert: Mittwoch 21. September 2005, 13:09
Wohnort: Siegen
Mittwoch 5. Oktober 2005, 13:35
Hallo Rapthor!
machs doch einfach so:
Code: Alles auswählen
gueltig = False
while gueltig==False:
try:
eingabe = raw_input("Bitte Wert in Euro eingeben: ")
eingabe = float(eingabe)
gueltig = True
except ValueError:
print "Bitte eine Zahl eingeben!"
print "Der Betrag entspricht %f DM" %(eingabe*1.96)
Edit (Leonidas): Code in Python-Tags gesetzt.
mfg
heftic
heftic
User
Beiträge: 22 Registriert: Mittwoch 21. September 2005, 13:09
Wohnort: Siegen
Mittwoch 5. Oktober 2005, 13:49
und so ist es sogar noch einfacher:
Code: Alles auswählen
gueltig = False
while gueltig==False:
try:
eingabe = input("Bitte Wert in Euro eingeben: ")
gueltig = True
except NameError:
print "Bitte eine Zahl eingeben!"
print "Der Betrag entspricht %f DM" %(eingabe*1.96)
Edit (Leonidas): Code in Python-Tags gesetzt.
mfg
heftic
Francesco
User
Beiträge: 824 Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria
Mittwoch 5. Oktober 2005, 14:01
Rapthor hat geschrieben: Hallo,
ich habe eine kleine Applikation geschrieben und frage mich, warum die Bearbeitung niemals über die "while"-Schleife hinaus geht, obwohl man eine Ganzzahl (6) bzw. Kommazahl (3.1) eingibt:
Code: Alles auswählen
gueltig = False
while ~gueltig:
try:
eingabe = raw_input("Bitte Wert in Euro eingeben: ")
eingabe = float(eingabe)
gueltig = True
except ValueError:
print "Bitte eine Zahl eingeben!"
print "Der Betrag entspricht %f DM" %(eingabe*1.96)
Wer kann mir hier helfen?
Rapthor
doc: """~x the bits of x inverted""": es ist kein logischer "Negierer", oder wie man es sonst bezeichnen sollte
entspricht in C(++) ebenfalls '~', für den logischen Wert gibt es '!' in C.
z=False
>>> ~z
-1
>>> z=True
~z
-2
also in beiden Fällen True:
True => Wert 1
False => Wert 0
Darum ist auch True + True gleich 2
am einfachsten:
while not gueltig:
...
Rapthor
User
Beiträge: 2 Registriert: Mittwoch 5. Oktober 2005, 13:14