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
Libérer: 2024-12-18 10:12:11
original
943 Les gens l'ont consulté

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)
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal