Maison >développement back-end >Tutoriel Python >Pourquoi mon code Python apparemment correct génère-t-il une « Erreur de syntaxe : syntaxe invalide » ?

Pourquoi mon code Python apparemment correct génère-t-il une « Erreur de syntaxe : syntaxe invalide » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-18 10:12:11945parcourir

Why Does My Seemingly Correct Python Code Throw a

Résoudre les problèmes « SyntaxError : syntaxe invalide » dans un code Python apparemment valide

Lorsque vous rencontrez une erreur « SyntaxError : syntaxe invalide » dans une ligne de code qui semble valide, il est prudent de vérifier la ligne précédente. Cette erreur peut potentiellement résulter d'un déséquilibre des parenthèses dans la ligne précédente, qui peut se reporter et déclencher l'erreur.

Considérons le code suivant comme exemple :

fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494)
guess = Pmin+(Pmax-Pmin)*((1-w**2)*fi1+(w**2)*fi2)

Ici, le une erreur est signalée à la ligne 2 pour « syntaxe non valide ». Cependant, en y regardant de plus près, il devient évident que la ligne 1 comporte trois parenthèses ouvertes mais seulement deux parenthèses fermées.

open parentheses: 1  2  3        # count open parentheses
                   v  v  v       # forked lines leading to parentheses
fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494)
                               ^   ^        # where error might be
closed parentheses:          1  2        # count closed parentheses

La ligne erronée 1 doit être corrigée comme suit :

fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2) + 0.494)  # add missing parenthesis

Remarque que dans les anciennes versions de Python (antérieures à 3.9), les messages d'erreur n'étaient pas aussi précis pour identifier l'emplacement du problème. Cependant, dans Python 3.9 et versions ultérieures, le message d'erreur indique correctement la source du problème :

File "prog.py", line 1
    xyzzy = (1 +
            ^
SyntaxError: '(' was never closed

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn