Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

erreur de type : builtins.TypeError: 'str' object is not callable. voici mon code !

–1 vote

def is_number(x):
try:
int(x)
return True
except ValueError:
return False

equation=input("Faites entre votre equation : ")
operateur=[]
nombre=[]
test=""
i=0
taille=len(equation)-1
while i<=taille :
if is_number(equation[i])==True :
test=test+equation[i]
b=False
j=1
while b==False :

        if is_number(equation(i+j)) : # erreur à ce niveau là!!  ERREUR : builtins.TypeError: 'str' object is not callable
            test=test+equation(i+j)

        elif equation(i+j)=="x" or equation(i+j)=="X" :
            test=test+equation(i+j)
            nombre.append(test)
            b=True
            i=i+j+1      

        else :
            nombre.append(test)
            operateur.append(equation(i+j))
            b=True
            i=i+j+1

        if b==False and i+j<taille :
            j=j+1

        else :
            if b==False and (i+j)==taille :
                b=true
                nombre.append(test)
                i=i+j+1

else :
    if equation[i]=="x" or equation[i]=="X" :
        nombre.append(equation[i])
    else :
        operateur.append(equation[i])

    i=i+1

print (nombre)
print (operateur)

demandé 10-Mar par Barney (98 points)

Peux-tu formater le code correctement et ajouter la stacktrace complète ?

2 Réponses

0 votes

equation est sûrement une chaîne et n'est donc pas utilisable en equation(params) mais effectivement, il serait mieux de donner un code plus complet et formaté :)

répondu 18-Mar par srault95 (250 points)
0 votes

Le problème ici c'est que en utilisant equation(i+j) tu dis à python "Execute la fonction equation avec le paramètre i+j". D'après le code que tu as écrit avant/après tu a surement envie de dire à python "donne moi le i+jieme caractère de la chaine de caractère équation. Pour cela il faut utiliser des crochets: equation[i+j].

J'ai l'impression que cette erreur est présente plusieurs fois dans ton code, essaye de toutes les corriger.

répondu 7-Aou par Fomys (146 points)
...