Seite 1 von 1

Eingabe darf nicht leer sein

Verfasst: Donnerstag 31. März 2011, 19:18
von inamarina
Ich habe bis jetzt folgenden Code:

Code: Alles auswählen

t_start = int(input('Anfangstemperatur (°C): '))

t_end = t_start

while t_end <= t_start:

        t_end = int(input('Endtemperatur (C°): '))
Jetzt möchte ich festlegen, dass wenn der Benutzer bei input keine eingabe macht (also irgendwas mit !=null), dass eine Fehlermeldung mit print erscheint?

Ich bekomme das nicht hin -.-

Re: Eingabe darf nicht leer sein

Verfasst: Donnerstag 31. März 2011, 19:31
von problembär
Produziere den Fehler (leerer Input), schau' Dir an, was dann beim Programm ankommt, und prüf' daraufhin.

Gruß

Re: Eingabe darf nicht leer sein

Verfasst: Donnerstag 31. März 2011, 19:34
von Hyperion
inamarina hat geschrieben: Jetzt möchte ich festlegen, dass wenn der Benutzer bei input keine eingabe macht (also irgendwas mit !=null), dass eine Fehlermeldung mit print erscheint?
Und wenn er einen Integerwert eingibt soll auch eine Fehlermeldung erscheinen? :twisted:

Zu dem Thema (universelle Input-Funktion) hatten wir auch schon den ein oder anderen Thread. Nutzt Du eigentlich Python 3.x? Wenn nein, nutze raw_input() statt input().

Als Ansatz kannst Du einfach die Exception abfangen, die bei falschem Parameter für int() geworfen wird:

Code: Alles auswählen

In [1]: int("foo")
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)

/home/nelson/src/Python/Unmanaged/analysis/<ipython console> in <module>()

ValueError: invalid literal for int() with base 10: 'foo'

In [3]: try:
   ...:     int("foo")
   ...: except ValueError:
   ...:     print "Bitte einen Integerwert eingeben!"
   ...:     
   ...:     
Bitte einen Integerwert eingeben!
Das ganze musst Du nun noch irgend wie in eine Schleife packen, damit man solange auf einen Fehler hingewiesen wird, bis man einen korrekten Wert eingegeben hat. Das überlasse ich Dir mal ;-)

Danach packst Du das in eine Funktion, der Du den Eingabetext und ggf. einen Mindestwert übergeben kannst. Damit sparst Du Dir das erneute Hinschreiben des gleichen Codes für den Endwert. Der einegegeben Integerwert wird von der Funktion zurückgegeben.

Im übrigen mal als kleiner genereller Hinweis: Es ist hier nicht gerne gesehen, wenn jemand seine Postings nachträglich löscht! Link Ich würde Dich also bitten, das in Zukunft nicht mehr zu machen.

Re: Eingabe darf nicht leer sein

Verfasst: Donnerstag 31. März 2011, 19:40
von inamarina
okay okay okay ich entschuldige mich :)
also wenn ich eine Zahl eingebe dann Funktioniert das