2016-07-19 9 views
0

Also sagen wir zum Beispiel, dass wir eine Liste von Strings haben, wie Monate. Wir wollen nur eine davon drucken, basierend auf der Eingabe einer Variablen (oder var-1, aufgrund der Enumerate-Funktion, die mit 0 statt mit 1 beginnt, also die Variable zwischen 0 und 11 liegt). Also, wie würde ich gehen, um eines davon basierend auf Eingabe auszuwählen und es zu drucken? Denken Sie daran, dass es mit der Enumerate-Funktion ist nur meine Vermutung, fühlen Sie sich frei, es zu ändern, wie Sie wollen, aber nur bitte, halten Sie es hier einfach, ich fange gerade an.Einen String aus der Python-Enumeration auswählen

(Beispiel)

i = input("0-11: ") 

months = ["January",.."December] 

so wäre es irgendwie zu verwenden, dass ich die func eine der Nummern zu wählen. Aufzählung liefert und druckt die Zeichenfolge.

PS: Ich bin sicher, dass es eine einfachere Möglichkeit gibt, dies zu tun.
PS dos: Ich entschuldige mich, wenn es schon einen Thread darüber gibt, aber ich habe keine Ahnung, wie das zu formulieren ist. hh.

Antwort

0

Gerade index die Liste:

i = int(input("0-11: ")) 

months = ["January",.."December"] 
if 0 <= i < 12: 
    print(months[i]) 
else: 
    print("Must be a number from 0-11") 

Oder mit 1-12:

i = int(input("1-12: ")) 

months = ["January",.."December"] 
if 1 <= i <= 12: 
    print(months[i-1]) 
else: 
    print("Must be a number from 1-12") 

Sie könnten auch in Betracht ziehen, wenn ein Benutzer etwas eingibt, die nicht gegossen werden kann int und catch the error

+0

Ah, in Ordnung, dachte, es gab einen einfacheren Weg, es zu tun, Prost! –

+0

@LukeDawson, keine Sorge, Sie könnten auch 1-12 verwenden, indem Sie 1 weg von i nehmen, wenn Sie die Liste indexieren –

0

Ich denke, dass wir hier eine einfache Antwort verwenden können, solange Ihre Monate in Ordnung sind. Konvertieren Sie einfach die Eingabe in int und indexieren Sie die Liste normal:

i = int(input("0-11: ")) 
months= ['january', 'february', 'etc'] 

print(months[i]) 

# input of 1 will yield the 2nd item in the list of months 
>>>0-11: 1 
february