Python integer en string
Bonjour,
j'ai le code suivant :
J'ai l'erreur suivante : TypeError: 'int' object is not callable
Je n'arrive pas à trouver pourquoi ça ne fonctionne pas j'espère que vous pourrez m'aider. Car si je n'appel pas i dans str1 tout fonctionne.
Cédric
j'ai le code suivant :
a = 'component_noeuds1.txt'
d = 'temp1.txt'
fichier = open(d, "w")
fichier.close()
i=0
with open(a, "r") as f:
for line in f.readlines():
i = i + 1
if "NO" in line:
fichier = open(d, "a")
str1=line + " " + str(i)
fichier.write(str1)
fichier.close()
J'ai l'erreur suivante : TypeError: 'int' object is not callable
Je n'arrive pas à trouver pourquoi ça ne fonctionne pas j'espère que vous pourrez m'aider. Car si je n'appel pas i dans str1 tout fonctionne.
Cédric
6 réponses
-
Bonjour
Je ne suis pas sûr de comprendrec'est pour ça que le code est uniquement dans un seul *.py pour éliminer cette erreur là.
Cela veut il dire que ton projet comprend plusieurs fichiers, et que potentiellement dans au moins un autre fichier tu as appelé une variable str? Dans ce cas, si la portée de cette variable est « globale » je ne pense pas que séparer les fichiers suffise à se prémunir.
Ou alors cela veut il dire que tout ton programme est dans un seul fichier et que dans ce fichier tu n’as pas nommé de variable str? -
J'y avais pensé c'est pour ça que le code est uniquement dans un seul *.py pour éliminer cette erreur là.
-
Ici, https://www.developpez.net/forums/d1015614/autres-langages/python/general-python/int-object-is-not-callable/
Il est expliqué que si tu nommes une variable comme une fonction, la fonction est écrasée.
Quand plus tard, tu veux utiliser la fonction, Python prend la variable et ça beug.
Plus avant dans ton code, n'aurais tu pas une variable qui s'appelle str?
-
Oui
j'ai essayé ça sur un site de code en ligneliste = ["Yes", "NO", "2", "NO", "NONO"] i=0 for line in liste: i = i + 1 if "NO" in line: str1=line + " " + str(i) print(str1)
Et ça marche, peux tu essayé chez toi?
-
Merci pour le commentaire le code doit être utilisable pour correction ^^
-
Bonjour,
en python, il y a un truc primordial: l'indentation.
Or le site (comme beaucoup) supprime les espaces "inutiles", et y'a plus d'indentation donc comme tout site de codage qui se respecte, il y a un moyen d'y remèdier.
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Quand tu auras, reposté ton code utilisable, quelqu'un pourra te répondre.