変数の使い方
変数とは、値を入れておくメモリ上の空間のことを言う。
プログラムの中で作成された値は変数に格納して、取り出したい時に取り出す。
pythonで変数に使える文字は、大文字・小文字のアルファベット、アンダースコアー(_)、数字、日本語のASCII文字。
変数の利用例
print(animal) # print関数でanimaを参照、eggをコンソール上に表示させる
定数の使い方
pythonでは、すべて大文字の変数を定数として定義する。
pythonの定数は、値を変更することができるため、厳密な意味では定数でない。
あくまで、利用者間の約束として、定数の値は変更しないようにして利用する。
定数の利用例
# × ANIMAL = 'cat' # ANIMALは定数のため、中身は変えない
予約語
予約語は、pythonの文法上利用される文字列(ループ文のforなど)で、変数名として利用することができない
以下、pythonの33個の予約語を示す
False | class | finally | is | return |
None | continue | for | lambda | try |
True | def | from | nonlocal | while |
and | del | global | not | with |
as | elif | if | or | yield |
assert | else | import | pass | |
break | except | in | raise |
グローバル変数
変数には名前空間がある。
名前空間とは変数を格納する空間のことで、変数を利用する場所に応じて、格納される名前空間は異なる
グローバル変数はグローバル領域に格納される変数である。
グローバル変数は、関数の中(ローカル空間)から書き換えることはできない。
書き換えるには、globalを利用する
(関数に関して)
グローバル変数の利用例1
def printAnimal(): 関数 printAnimal
animal = 'cat' # この変数animalは、関数外のanimalとは異なる名前空間の変数(ローカル空間)。animal = 'cat'としても関数の外のanimalは書き換わらない
print(animal) # catと表示
printAnimal()
print(animal) # グローバル空間のanimal('dog')が表示される
グローバル変数の利用例2
def printAnimal():
global animal # globalを付与することで、global変数のanimalを参照することができる
animal = 'cat' # グローバル変数animalの値を、catに書き換える。
print(animal) # print(animal)でcatが表示される
printAnimal() # printAnimal実行(animalをcatに書き換える)
print(animal) # ここでcatと表示される
ノンローカル変数
pythonでは、関数の内部に関数を書くことができる。
関数内関数から、外側の関数で宣言された変数の値を書き換える場合、nonlocalを利用する。
- nonlocalを使わない場合
outer_value = '外' # outer関数の名前空間の変数outer_valueに「外」が代入される
def inner():
inner_value = '内' # inner関数の名前空間の変数inner_valueに「内」が代入される
outer_value = '内側で変更' # 名前空間が異なるため、inner関数からouter関数の変数を変更することはできない
inner() # inner関数を実行(outer_valueの値はそのまま)
return outer_value # outer_value('外')が返される
value = outer() # 関数outerを呼び出し、返り値('外')をvalueに代入。
print(value) # value('外')と表示
- nonlocalを使う場合
outer_value = '外' # outer関数の名前空間の変数outer_valueに「外」が代入される
def inner():
nonlocal outer_value # nonlocalを付与すると、outer関数の空間のouter_valueを参照して変更できるようになる
inner_value = '内' # inner関数の名前空間の変数inner_valueに「内」が代入される
outer_value = '内側で変更' # outer_valueを用いて outer関数の名前空間の変数outer_valueに「内側で変更」が代入される
inner() # innerを実行(outer_valueが書き換わる)
return outer_value # 「内側で変更」が返される)
value = outer()
print(value) # 「内側で変更」と表示
以上、pythonの変数の使い方について説明しました。
【2020年版】: Python 3.8 データ構造、文法、アルゴリズム、オブジェクト指向、ライブラリ、完全マスター講座