なぜPythonは数字で始めることができないのでしょうか?

(*-*)浩
リリース: 2019-07-03 10:34:40
オリジナル
5412 人が閲覧しました

誰かが何かを書面で規定する限り、必ず理由、つまり合理性があるはずです

なぜ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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート