Eingabe darf nicht leer sein

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.
Antworten
inamarina
User
Beiträge: 6
Registriert: Mittwoch 30. März 2011, 09:04

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 -.-
problembär

Produziere den Fehler (leerer Input), schau' Dir an, was dann beim Programm ankommt, und prüf' daraufhin.

Gruß
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
inamarina
User
Beiträge: 6
Registriert: Mittwoch 30. März 2011, 09:04

okay okay okay ich entschuldige mich :)
also wenn ich eine Zahl eingebe dann Funktioniert das
Antworten