Python integer en string

Adanedhel07 -  
 Utilisateur anonyme -
Bonjour,

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

Utilisateur anonyme
 
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.
0
Utilisateur anonyme
 
PS, tu peux modifier ton propre message pendant 1h
0
Adanedhel07
 
Merci pour le commentaire le code doit être utilisable pour correction ^^
0
Utilisateur anonyme
 
Oui

j'ai essayé ça sur un site de code en ligne
liste = ["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?
0
Utilisateur anonyme
 
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?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Adanedhel07
 
J'y avais pensé c'est pour ça que le code est uniquement dans un seul *.py pour éliminer cette erreur là.
0
Utilisateur anonyme
 
Bonjour

Je ne suis pas sûr de comprendre
c'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?
0