nyannpyLogo

NyannPy

😼
Nyannmaru's
Kaggle War NyannPy
😼

May the Kaggle Force
Be With You

Pythonの変数宣言


変数宣言とは何か

プログラミング言語と電卓を隔てる大きな違いの一つに変数宣言がある。変数宣言とはプログラムのランタイム中にあらかじめ演算結果を保存領域を作ることにあり、その領域にはもっぱら何らかの名前が付される。 一般的な電卓であると画面から数値が消去された瞬間にそれまでの演算結果が失われてしまうのが通常であるが、プログラミング言語ではそれらを変数として予め確保された領域に書き込んでおくことで後々のニーズに応じて計算結果を再利用することが可能である。
また、プログラミングの扱う変数は単純な数値以外に文字列(string)や複数の数値や文字列で構成される構造体などのタイプが存在し多様である。

プログラムを書くという行為を極めて簡潔に表現すると

  1. 変数を宣言する。
  2. 変数に基づき演算する。
  3. 演算結果を表示する。

の三種類のステージへと分類される。昨今はAIやDeep Learningの登場により演算部分は複雑化し、統計学的なアルゴリズムが主体なものへと変容しつつある。また、演算結果の表示に関しても多様なニーズへと対応するために多様なUIライブラリーが開発され複雑化の一方であるが、このプログラミングの三種類のステージの根本部分に関しては大きく変わってはいない。

プログラマーの仕事がランタイム中の変数の変容の管理にあるとすれば、この変数宣言とは管理対象の創出ということになり極めて重要な事項である。そうして管理の仕事を簡潔化するためにも変数に付される命名法はシステマティックであることが必要となる。

変数に伴うスコープ

変数のスコープとは変数の名前が変数自身に関連付けられる範囲である。この名詞や概念のスコープという機能性はプログラミング言語に限定された話でなく、自然言語を含め言語自身が持つ普遍的な性質の一つと言える。 このスコープという機能性があればこそ言語によって記述される内容は眼の前に存在するものとの関係性を作り出すことが可能である。 プログラミング言語においてはこのスコープがあるからこそプログラマーは意図したとおりに変数の内部状態を改変・表示することが可能となる。

このスコープというものの難しさの一つに名前が指し示す実態との関係性の正当性・妥当性がコンテクストによって決定されるという点がある。例えば、1年1組の教室と3年2組の教室に各一人ずつ「佐藤」という名字の生徒が所属していたとして、ある時先生が3年2組の教室にて「じゃあ、この問題は佐藤」と指名した際に立ち上がるべきなのは1年1組に所属する「佐藤」くんではなく3年2組に所属する「佐藤」くんであるべきだろう。
人間はこのような問題解決をトリビアルなものとして即座に行ってのけるが、その脳内にある高度にコンテクストに依存するネーミングの正当性・妥当性の判定するアルゴリズムをプログラム言語にて描けるとすれば、それはAI開発における大きな一里塚になるのではなかろうか。

Pythonにおけるスコープ

scope.webp

Pythonにおける変数のスコープは極めてシンプルで直感的に扱いやすものとなっています。文字で書き表すと少し複雑に見えなくもないです

< code src="testPython.py" >

some=324
print(some)

< output src="testPython.py" with Python 3.13.5 >

         
          324