L'erreur suivante s'est produite en python, donc le mémo de cause et de remède.
TypeError: slice indices must be integers or None or have an __index__ method
Se produit lorsqu'une variable est spécifiée dans une tranche.
python
arr = [1,2,3,4,5,6]
mid = len(arr)/2 #Cause d'erreur
print(arr[0:mid]) #Traitement des occurrences d'erreur
#TypeError: slice indices must be integers or None or have an __index__ method
Le contenu de l'erreur est que vous ne pouvez spécifier qu'un entier, aucune valeur ou la méthode __index__
dans la tranche.
Méthode __Index__
est un processus qui renvoie int par type.
La cause de l'erreur est que len (arr) / 2 n'était pas un entier (entier). La barre oblique de division est un flottant qui inclut le point décimal 0 même si la cible est paire.
python
arr = [1,2,3,4]
type(len(arr)/2)
#float
Utilisez deux barres obliques. "/" → "//" Deux barres obliques ne sont que la partie entière de la division (arrondie après la virgule décimale)
Confirmation du type
arr = [1,2,3,4]
type(len(arr)//2)
#int
Recalcul
arr = [1,2,3,4,5,6]
mid = len(arr)//2
print(arr[0:mid])
#[1, 2, 3]