【初心者向け】関数を使うときのReturnとGlobal変数の違い

少し長めのプログラムを書くようになってきたので、関数を使用してみたものの、、、

初心者のときは「あれっ?変数を参照しようと思うとエラーになるんだけど。。。」みたいな経験があると思います。

関数を使うと処理を再利用できたり、プログラム全体の流れが分かりやすくなったりするので、是非活用したいところですが、

戻り値であるReturnや、関数外からも参照できるGlobal変数などはじめは理解し難いかもしれません。

今回は、ReturnとGlobal変数の使い方を直感的に理解しやすいようまとめてみたいと思います。

分かりやすさを優先しているので、かなりざっくりとしているかもです。

サンプルプログラム

メイン関数を使用して文字列を出力するプログラムを書いてみました。メイン関数で書いています。

def main() は、全体の流れ
def text() は、具体的な処理
if __name__ == “__main__”: はメイン関数を使うときのおまじないです。これを書くことで1行目の「main()」を呼び出しています。

def main():
    print(text())
    print(tt)
    
def text():
    global tt
    t = "Hello"
    tt = "Hey!"
    return t

if __name__ == "__main__":
    main()

Returnの使い方

main()の中の処理を見ると、まずは関数「text()」を呼び出しています。text()の中には、”Hello”と”Hey!”の二つの文字列がありますが、

関数「test()」の戻り値となるのは”Hello”です。

このため2行目の「print(text())」では”Hello”が出力されます。

処理の流れとしては、

Main()の中でtext()を呼び出し処理を実行
⇒text()の戻り値t=”Hello”が返される
⇒”Hello”が出力される

Globalの使い方

「text()」の中に「tt= “Hey!”」が記載されています。これはttという変数に”Hey!”を代入するという意味です。
しかし、関数「text()」の戻り値は「t」だけなので、「tt」は行き先がない状態です。

そこで、「Global tt」と宣言することで、関数外からも「tt」を参照できるようにします。これがグローバル変数と言われるものです。

グローバル変数とすることで、別の関数である「main()」の中から「tt」を参照することができるようになりました。

created by Rinker
翔泳社
タイトルとURLをコピーしました