こんにちは、マサキです。
今回はPythonでグローバル変数を使う方法をご紹介します。
変数を関数の外で定義する方法と関数内でglobalを使ってグローバル変数の値を変更する方法の2つを説明していきたいと思います。
グローバル変数の扱い
関数の外で変数を定義する
# グローバル変数g(重力加速度)を定義
g = 9.8
# 力を計算するforce関数を定義
def force(m): # 引数には重さm(kg)を使う
return m * g
このように、関数の外でgを定義しておくと、force関数を使うときにその値をそのまま使うことができます。
force(100)
#980
↑のようにm = 100のときには980(N)の力がかかることが分かります。
関数の中でglobalを使ってグローバル変数の値を変える
グローバル変数aがあるときに、その値をある関数によって変更したいときに、↓のように関数を定義するとうまくできません。
# グローバル変数a(= 0)を定義
a = 0
# aの値を変える関数change_valueを定義(失敗例)
def change_value1(b):
# このままaにbを代入
a = b
# aの値を1に変更
change_value1(1)
# aの値が1になったかどうか確認
print(a)
# 0
# 0のままで1にはならない
↑のように定義しても、aの値を変更することはできません。
正しくは↓のように定義します。
# グローバル変数a(= 0)を定義
a = 0
# aの値を変える関数change_valueを定義(成功例)
def change_value2(b):
global a # ここでaをグローバル変数として使うことを宣言する
a = b
# aの値を1に変更
change_value2(1)
# aの値が1になったかどうか確認
print(a)
# 1
# 1になった!
関数の中でglobalを使って、変数aをグローバル変数として使うことを宣言してあげることで、aの値を変更することができます。