2016-11-28 3 views
-2

danke für die Hilfe. Ich habe Probleme mit dem folgenden Code:Wie kann ich Benutzereingaben mit eval in eine Liste setzen?

digitsList = input("Enter any list of 0 or more digits in the form [digit, digit, ...]:") 

if element == int(list[index]): 
    index += 1 
    return True 

else: 
    index += 1 
    return False 

zum Beispiel der Benutzer eingegeben: [1,2,3]

dann bekomme ich einen folgenden Fehler:

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

ich alles versucht, ich kann aber nicht sein fähig, es zu lösen.

+0

Sorry, ich bin ein Starter, das Problem ist, ich möchte der Benutzer in das Formular eingeben [Ziffer, Ziffer, ...], aber ich will nicht die "[" oder "]" in der aktuellen Liste, weil ich möchte sehen, ob 0 == int (digitList [0]) und es funktioniert nicht, wenn digitList [0] "[" ist. Gibt es eine Möglichkeit zu vermeiden, "[" oder "]" in die Liste hinzugefügt werden – litterbeach

Antwort

0

Es ist ein bisschen schwierig, Ihren Code so zu lesen, wie Sie ihn gepostet haben, aber Benutzereingaben könnten mithilfe der .append-Funktion in eine Liste eingefügt werden.

Zum Beispiel:

list = digitsList.append("what the user inputs goes here") 
+0

Sorry, ich bin ein Starter, das Problem ist, ich möchte den Benutzer in das Formular eingeben [Ziffer, Ziffer, ...], aber ich tue es nicht wollen das "[" oder "]" in der acutal Liste, weil ich sehen möchte, ob 0 == int (digitList [0]) und es wird nicht funktionieren, wenn digitList [0] ist "[". Gibt es eine Möglichkeit zu vermeiden, dass "[" oder "]" in die Liste aufgenommen wird – litterbeach

0

Du eine falsche Eingabe zu geben. Die vom Benutzer eingegebene Eingabe sollte in einer einzelnen Zeile wie folgt aussehen: 1 2 3. Wenn Sie sollen eine Liste als Eingabe nehmen, dies tun:

digitslist = map(int, raw_input("Enter any list of 0 or more digits in the form [digit, digit, ...]:").split()) 

Eingang: 1 2 3

Ausgang: [1, 2, 3]

Die input() Funktion soll nur eine int, float oder string entered with quotes nehmen, wie Eingang.

+0

Vielen Dank für Ihre Hilfe, ich habe die folgenden Code-Einschränkungen, da ich Hausaufgaben für meine Klasse mache. Die einzigen Python-Funktionen, die ich verwenden darf, sind: input() eval() und len() – litterbeach

+0

und ich muss den Benutzer bitten, das Formular [digit, digit, ...] einzugeben. – litterbeach

+0

@litterbeach: Wenn du es bist Arbeiten Sie in 'python 3.x', tun Sie dies:' eval (input()) 'und wenn in' python 2.7', tun Sie dies: 'eval (raw_input())', wo der Benutzer eingibt: '[1,2 , 3] '. – Jarvis

Verwandte Themen