変数#

変数の命名#

Pythonで変数を定義できます。変数とは、プログラムで使いたいメモリ上の値に名前を付けたものです。値を保存したり参照したりするために使用されます。

Pythonで変数の作成は、いくつかのルールがあります。

  • 大文字と小文字を区別する:chss,Chss, CHSSはすべて異なる名前です。

  • 先頭で数字は使えないです。例えば、1aは無効な変数名です。

  • Pythonの予約語を避けます。

予約語の一覧を表示#

Note

強制ではないですが、可読性を向上するために、できるだけ推奨される命名規則にしたがった方が良いです。

対象 ルール
パッケージ 全小文字 なるべく短くアンダースコア非推奨 tqdm, requests ...
モジュール 全小文字 なるべく短くアンダースコア可 sys, os,...
クラス 最初大文字 + 大文字区切り MyFavoriteClass
例外 最初大文字 + 大文字区切り MyFuckingError
型変数 最初大文字 + 大文字区切り MyFavoriteType
メソッド 全小文字 + アンダースコア区切り my_favorite_method
関数 全小文字 + アンダースコア区切り my_favorite_funcion
変数 全小文字 + アンダースコア区切り my_favorite_instance
定数 全大文字 + アンダースコア区切り MY_FAVORITE_CONST
help("keywords")
Here is a list of the Python keywords.  Enter any keyword to get more help.

False               class               from                or
None                continue            global              pass
True                def                 if                  raise
and                 del                 import              return
as                  elif                in                  try
assert              else                is                  while
async               except              lambda              with
await               finally             nonlocal            yield
break               for                 not                 

代入#

=を使って変数に値を代入する。

a=5
print(a)
print(a+5)
5
10

Advanced

多くのプログラミング言語では、変数自体が型を持ち、メモリ位置が固定されているが、Pythonの場合、変数はただの名前です

../_images/immutable.png

つまり、代入は値をコピーするわけではない、データを入れてあるオブジェクトに名前を付けるだけです。名前はものの参照手段であり、もの自体ではないです。

変数の代入は、メモリ内のどこかにあるオブジェクトに長いヒモで繋がるというイメージです。そのため、CJAVAのような静的言語では変数の型を明確的に指定しなければないが、Pythonでは型を指定する必要はありません。

../_images/immutable2.png
../_images/immutable3.png
#新たに生成したように見えるbは同じ値を指しているので、変数も値そのものもIDは同じになります。
a=5
b=5
print("a:{},b:{},5:{}".format(id(a),id(b),id(5)))
a:4383380720,b:4383380720,5:4383380720
#変数の型が異なるなら、変数IDも異なっています。
a='5'
b=5
print("a:{},'5':{},b:{},5:{}".format(id(a),id('5'),id(b),id(5)))
a:4383441744,'5':4383441744,b:4383380720,5:4383380720