TypeError : 'builtin function or method' et '_getitem__'
Résolu/Fermé
bob_5506
Messages postés
1
Date d'inscription
lundi 7 février 2022
Statut
Membre
Dernière intervention
7 février 2022
-
Modifié le 8 févr. 2022 à 11:55
mamiemando Messages postés 33381 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 26 novembre 2024 - 8 févr. 2022 à 12:02
mamiemando Messages postés 33381 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 26 novembre 2024 - 8 févr. 2022 à 12:02
A voir également:
- Typeerror: 'builtin_function_or_method' object has no attribute '__getitem__'
- Shockwave flash object - Télécharger - Divers Web & Internet
- No such file or directory ✓ - Forum Linux / Unix
- Dns probe finished no internet ✓ - Forum DNS
- No epg found - Forum Box et Streaming vidéo
- The system has posted in safe mode ✓ - Forum BIOS
3 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
7 févr. 2022 à 23:28
7 févr. 2022 à 23:28
Bonjour
Tu veux boucler sur une range au sur un array ?
Car là tu sembles avoir mélangé les deux ...
Tu veux boucler sur une range au sur un array ?
Car là tu sembles avoir mélangé les deux ...
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 8 févr. 2022 à 11:55
Modifié le 8 févr. 2022 à 11:55
Bonjour,
Ce serait plutôt :
Ce serait plutôt :
for i in [0, 1, 6, 8, 9]: print(i)
mamiemando
Messages postés
33381
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 novembre 2024
7 803
Modifié le 8 févr. 2022 à 12:40
Modifié le 8 févr. 2022 à 12:40
Bonjour,
Phil et yg_be on déjà presque tout dit, mais vu la confusion entre les listes et les
Concernant l'erreur, la méthode
Par contre, on pourrait tout à fait instancier un
Bonne chance
Phil et yg_be on déjà presque tout dit, mais vu la confusion entre les listes et les
rangeje pense qu'un rappel est utile :
- les listes et les range sont tout deux des itérables : cela signifie qu'on peut itérer dessus avec une boucle
for
. - une liste contient des éléments arbitraires, possiblement répétés, pas forcément ordonnées (elle garde donc en mémoire tous les éléments qu'elle contient)
for i in [0, 1, 2, 3, 4, 5]: print(i) # Affiche 0 1 2 3 4 5
- un .
range
contient une valeur d'initialisation (pouvant être sous-entendu quand on part de 0) et un pas (pouvant être sous-entendu quand il est égal à 1) et une une borne supérieure (obligatoire). Peut importe la plage de valeur couverte unrange
est donc de taille fixe en mémoire.
for i in range(6): # ou for i in range(0, 6, 1) print(i) # Affiche 0 1 2 3 4 5
Concernant l'erreur, la méthode
__getitem__est appelé lors de l'utilisation de l'opérateur
[ ]. Or ici on appelle une fonction (
range), et en python, un nom de fonction ne peut pas être suivi par cet opérateur.
Par contre, on pourrait tout à fait instancier un
rangeet appliquer à cette instance l'opérateur
[ ].
r = range(10) print(r[2]) # Affiche 2 r = range(1, 10, 2) print(list(r)) # Affiche [1, 3, 5, 7, 9] print(r[2]) # Affiche 3
Bonne chance