ホームページ >バックエンド開発 >Python チュートリアル >一見正しい Python コードが「SyntaxError: Invalid Syntax」をスローするのはなぜですか?

一見正しい Python コードが「SyntaxError: Invalid Syntax」をスローするのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 10:12:11946ブラウズ

Why Does My Seemingly Correct Python Code Throw a

一見有効な Python コードの「SyntaxError: 無効な構文」のトラブルシューティング

次の行で「SyntaxError: 無効な構文」エラーが発生した場合コードが有効であるように見える場合は、その前の行を確認することが賢明です。このエラーは、前の行のかっこの不均衡が原因で発生する可能性があり、それが繰り越されてエラーが発生する可能性があります。

例として次のコードを考えてみましょう。

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)

ここでは、 2 行目で「無効な構文」のエラーが報告されます。ただし、よく見てみると、行 1 には開き括弧が 3 つありますが、閉じ括弧が 2 つしかないことがわかります。

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

誤った行 1 は次のように修正する必要があります。

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

注Python の古いバージョン (3.9 より前) では、エラー メッセージは問題の場所を特定するのにそれほど正確ではありませんでした。ただし、Python 3.9 以降では、エラー メッセージは問題の原因を正しく示しています:

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

以上が一見正しい Python コードが「SyntaxError: Invalid Syntax」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。