Der folgende Fehler ist in Python aufgetreten, also die Ursache und Abhilfe Memo.
TypeError: slice indices must be integers or None or have an __index__ method
Tritt auf, wenn eine Variable in einem Slice angegeben wird.
python
arr = [1,2,3,4,5,6]
mid = len(arr)/2 #Fehlerursache
print(arr[0:mid]) #Fehlerauftrittsverarbeitung
#TypeError: slice indices must be integers or None or have an __index__ method
Der Inhalt des Fehlers besteht darin, dass Sie im Slice nur eine Ganzzahl, keinen Wert oder die Methode __index__
angeben können.
__Index__
Methode ist ein Prozess, der int nach Typ zurückgibt.
Die Fehlerursache ist, dass len (arr) / 2 keine int (Ganzzahl) war. Der Divisions-Schrägstrich ist ein Gleitkomma, das den Dezimalpunkt 0 enthält, auch wenn das Ziel gerade ist.
python
arr = [1,2,3,4]
type(len(arr)/2)
#float
Verwenden Sie zwei Schrägstriche. "/" → "//" Zwei Schrägstriche sind nur der ganzzahlige Teil der Division (nach dem Dezimalpunkt abgerundet).
Typbestätigung
arr = [1,2,3,4]
type(len(arr)//2)
#int
Neuberechnung
arr = [1,2,3,4,5,6]
mid = len(arr)//2
print(arr[0:mid])
#[1, 2, 3]