Listenspielereien - Value Error Problem
Verfasst: Dienstag 4. Oktober 2011, 18:27
Hallo Leute!
Habe heute an folgendem Code gebastelt. ich wollte mit Listen spielen. D.h. Das Programm tut nichts andres als eine Liste zu erstellen, die Listeinträge auszugeben bzw zu zählen und zu guter Letzt hat man die Möglichkeit, sich einen beliebigen Listeintrag anzeigen zu lassen. Soweit so gut. Hier mal der Code dazu:
Bei der 2ten while-Schleife hatte ich zuerst keinen try / except Konstrukt, sondern alles mit der If-Abfrage geregelt.
Der Block hat so ausgeschaut:
Hier allerdings verursachte ein einfaches Return (bei Input der eintragnr) welches eigentlich der if Abfrage if eintragnr == "" entspricht einen ValueError.
Genaue Meldung: ValueError: invalid literal for int() with base 10.
D.h. eine Leereingabe ist bei einer Variable des Types int nicht möglich?
Danach hab ich eben diesen ValueError hergenommen um ihn mittels try except abzufangen.
Wie könnte man das ohne try/except lösen?
LG
Daniel
Habe heute an folgendem Code gebastelt. ich wollte mit Listen spielen. D.h. Das Programm tut nichts andres als eine Liste zu erstellen, die Listeinträge auszugeben bzw zu zählen und zu guter Letzt hat man die Möglichkeit, sich einen beliebigen Listeintrag anzeigen zu lassen. Soweit so gut. Hier mal der Code dazu:
Code: Alles auswählen
# -*- coding: utf-8 -*-
print 'Listen und was man damit alles anstellen kann...'
print 'Daten zu einer leeren Liste hinzufügen'
liste = []
while True:
eintrag = raw_input('Geben Sie Listeneinträge ein:')
if eintrag == "":
break
else:
liste.append(eintrag)
print 'Danach die Liste ausgeben'
print liste
print ''
print 'Die Listenelemente zählen'
eintraege = len(liste)
print 'Die Liste hat ', eintraege, ' Listeinträge'
print ''
print 'Oder aber, bestimmte Listeinträge anzeigen:'
while True:
try:
eintragnr = int(raw_input('Listeintrag Nr keine Eingabe = Ende :'))
if eintragnr > eintraege - 1:
print 'Eintrag nicht vorhanden'
print 'Letzter Eintrag ist Nr: ', eintraege
continue
except ValueError:
break
print 'Der Eintrag lautet:', liste[int(eintragnr)]Bei der 2ten while-Schleife hatte ich zuerst keinen try / except Konstrukt, sondern alles mit der If-Abfrage geregelt.
Der Block hat so ausgeschaut:
Code: Alles auswählen
while True:
eintragnr = int(raw_input('Listeintrag Nr keine Eingabe = Ende :'))
if eintragnr > eintraege - 1:
print 'Eintrag nicht vorhanden'
print 'Letzter Eintrag ist Nr: ', eintraege
continue
if eintragnr == "":
break
else:
print 'Der Eintrag lautet:', liste[int(eintragnr)Genaue Meldung: ValueError: invalid literal for int() with base 10.
D.h. eine Leereingabe ist bei einer Variable des Types int nicht möglich?
Danach hab ich eben diesen ValueError hergenommen um ihn mittels try except abzufangen.
Wie könnte man das ohne try/except lösen?
LG
Daniel