TypeError: list indices must be integers oder Scheiben, nicht str 'konvertieren chararter'
Number = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
for n in range(0, 20):
print(Number[n]+1\n)
InputNum3 = input()
Number[InputNum3] = ''.join(str('-'))
wollen:
1 2
3
4
.... 20
Eingang 2
wollen:
1
-
3
4...20
aber das Ergebnis ist:
TypeError: list indices must be integers oder Scheiben, nicht str
input
gibt einestr
Sie brauchen, um wirken zuint
um für die Indizierung, um gültig zu sein- Seltsam, es wirft
SyntaxError
für mich.
InformationsquelleAutor Matthew Leung | 2017-06-05
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tun:
inputNum3 = int(input())
um eine Ganzzahl, können Sie keinen Zugang zu Listen mit einem String als index.
Ihre Variablennamen beginnen mit Kleinbuchstaben. In der Regel snakecase zu, in der alle Kleinbuchstaben getrennt durch Unterstrich:
Brauchen Sie nicht die
.join()
hier, weil Sie möchten, um nur einen einzigen Charakter sowieso.Können Sie auch füllen Sie Ihre
number
Liste etwa so:number = [x for x in range(20)]
Dies wird als eine list comprehension.
Schließlich können Sie nur tun
print(number)
wenn Sie möchten, drucken Sie die gesamte Liste, keine Notwendigkeit für diefor
Schleife.Wenn Sie möchten, drucken Sie alle Listen-Elemente vom index
x
zuy
können Sie die Liste zerschneiden:number[3:15]
zum Beispiel.Sehen hier weitere Beispiele von Scheiben.
In Python ist3, input() gibt einen string zurück. In Python2 jedoch, input() gibt den Typ, den Sie suchen, eine ganze Zahl. Daher müssen Sie werfen die Funktion input() einen int-Wert, da Sie offensichtlich versucht, einen Wert zuweisen, der in der Liste nach dem index.