TypeError: 'int' object n'est pas appelable,,, len()
J'ai écrit un programme pour jouer au bourreau---ce n'est pas fini, mais il me donne une erreur pour une raison...
import turtle
n=False
y=True
list=()
print ("welcome to the hangman! you word is?")
word=raw_input()
len=len(word)
for x in range(70):
print
print "_ "*len
while n==False:
while y==True:
print "insert a letter:"
p=raw_input()
leenghthp=len(p)
if leengthp!=1:
print "you didnt give me a letter!!!"
else:
y=False
for x in range(len):
#if wo
print "done"
erreur:
leenghthp=len(p)
TypeError: 'int' object is not callable
double possible de TypeError: 'int' object n'est pas appelable
OriginalL'auteur Gilad Wharton Kleinman | 2013-07-20
Vous devez vous connecter pour publier un commentaire.
Vous avez attribué à un nom local
len
:Maintenant
len
est un entier et les ombres de la fonction intégrée. Vous souhaitez utiliser un différents nom au lieu:Autres conseils:
Utilisation
not
au lieu de tester l'égalité deFalse
:Idem pour les essais de
== True
; c'est ce quewhile
déjà ne:est juste une autre construite en nom; il y a beaucoup de tels noms, et de nouveaux noms sont ajoutés de temps en temps. C'est très bien d'utiliser ces noms dans votre propre code pour d'autres fins! Re-noms de liaison à autre chose n'est pas plus gros problème avec des noms tels que avec tous les autres noms que vous utilisez dans votre code. Cela dit, une bonne IDE peut aider ici, ou vous pouvez ajouter des type de conseils de votre code et d'avoir un outil comme mypy ou PyCharm attraper ces questions de cette façon.
Eu le même problème aussi, où j'avais passé un argument à la fonction avec le nom len.. souviendrai de celle-ci. Vraiment m'avait déconcerté. Est-il peut-être, un chiffon d'avertissement, vous pouvez activer l'alerte de l'remplacé les noms par défaut?
oui, utiliser le flake8-les builtins plugin pour Flake8.
N'avez pas utilisé . qu'. J'ai eu quelques conseils ici: stackoverflow.com/q/50609715/495157 et travaillé sur un moyen de le faire avec pylint - puisque c'est ce que mon IDE, VS Code semble par défaut. Merci bien 🙂
OriginalL'auteur Martijn Pieters