ホームページ  >  記事  >  バックエンド開発  >  Python の変数を数字で始めることができないのはなぜですか?

Python の変数を数字で始めることができないのはなぜですか?

(*-*)浩
(*-*)浩オリジナル
2019-07-03 10:28:326213ブラウズ

書面で定められている以上は、必ず理由があり、合理的である必要があります。

Python の変数を数字で始めることができないのはなぜですか?

Python 変数の命名規則 (推奨学習: Python ビデオ チュートリアル )

変数名には次の内容のみを含めることができます。文字、数字、アンダースコア。変数名は文字またはアンダースコアで始めることができますが、数字で始めることはできません。たとえば、変数に message_1 という名前を付けることはできますが、1_message という名前を付けることはできません。

変数名にはスペースを含めることはできませんが、単語を区切るためにアンダースコアを使用できます。たとえば、変数名greeting_messageは機能しますが、変数名greeting messageではエラーが発生します。

Python のキーワードや関数名を変数名として使用しないでください。つまり、Python が印刷などの特別な目的のために予約している単語を使用しないでください。

変数名は短く、わかりやすいものにする必要があります。たとえば、name は n よりも優れており、student_name は s_n よりも優れており、name_length は length_of_persons_name よりも優れています。

小文字の l と大文字の O は、数字の 1 および 0 と間違われる可能性があるため、注意して使用してください。

注: Python 変数名は小文字を使用する必要があります。変数名に大文字を使用してもエラーは発生しませんが、大文字の使用は避けることをお勧めします。

では、なぜ数字で始めることができないのでしょうか?これはコンパイル原則の観点から説明する必要があります。

今日スクリプト解析をしていてふと思ったのがこれです。まず文法解析ツールについて説明します。解析するスクリプトは非常に単純で、&、|、~、=、!=、()、{} などの演算子のみが含まれています。最初はコンパイル原則が採用され、NFA と DFA を描画し、ステータスを見つけてから字句解析を記述してトークンを生成し、次に構文解析によってトークンを生成し、セマンティクスに基づいて構文ツリーを生成し、最後にそれを評価しました。 。後から考えると、このスクリプトは非常に単純で、文字ごとに判定し、異なる種類の文字に遭遇した場合に処理するサブ関数を入力するだけで、同時に字句解析、構文解析、および解析の処理が完了します。評価。ただし、どの方法を使用する場合でも、読み込まれた文字に基づいて、現在どのトークンが入力されているかを判断する必要があります。これが問題の核心です。

キャラクターがどのトークンに属しているかを決定することが重要なのはなぜですか?

変数名を数字で始めてはいけないという制限を解除するとします。字句解析器がトークン解析の初期状態に入ったとき、読み取られた最初の文字が数字の場合、字句解析器はトークンが数字であるかどうかを判断できません。現在分析しているのは変数名または数値定数です。さて、アナライザーが次の文字に基づいて判断できると言えば、次の文字が文字であれば、現在のトークンが変数名に属していると判断するのは簡単です(予約キーワードは今回は無視します)である)、しかし次の場合、文字がすべて数字の場合はどうすればよいですか?変数名の定義には数字が許可されているため、パーサーはそれを認識できません。

はは、上で言ったことは複雑で理解しにくいかもしれません。簡単に言うと、文字列 "123" を分析するときに、変数名で最初の文字を数字にできる場合、アナライザーはそれを許可しません。 「123」が数値定数なのか変数名なのかはわかりません。

Python 関連の技術記事の詳細については、Python チュートリアル 列にアクセスして学習してください。

以上がPython の変数を数字で始めることができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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