Python(パイソン)講座、第3回目です。
前回は制御構造について学習しました。
今回は関数についてです。
それでは見ていきましょう。
関数について
関数は、処理のまとまりのようなものです。
関数の定義と呼び出し
関数は、def を使うことで定義することができます。
def 関数名(引数): 関数内の処理
ちなみに引数(パラメータ)は不要な場合はなくても問題ありません。
簡単なプログラムを書いてみましょう。
# 関数の定義 def say_hello(): print('Hello!') # 関数の呼び出し(引数なし) say_hello()
これを実行すると以下のように表示されます。
Hello!
return文
先程の関数で何らかの値を返したい場合はreturn文を使います。
# 関数の定義(返り値あり) def say_hello(): print('Hello!') return 'わかりません' # 関数の呼び出し(引数なし) msg = say_hello() print(msg)
これを実行すると以下のように表示されます。
Hello! わかりません
スコープについて
関数内で定義された変数はその関数内の範囲だけ使えます。
この範囲のことをスコープといいます。
ローカル変数とグローバル変数
関数内で定義された変数は基本的にその関数内だけで有効となります。
こういった変数のことをローカル変数といいます。
それに対してすべての関数の外で定義された変数はグローバル変数といいます。
簡単なプログラムを書いてみましょう。
msg = 'Wow!' # グローバル変数 # 関数の定義 def say_hello(): msg = 'Hello!' # ローカル変数 print(msg) # 関数の呼び出し say_hello() # print関数 print(msg)
これを実行すると以下のように表示されます。
Hello! Wow!
global文
関数内からグローバル変数を変更したい場合は global文 を使います。
global 変数名
関数内でこの宣言をすると、この関数ではグローバル変数を参照するので、宣言した変数名のローカル変数を作らないようにということです。
最後に
いかがでしょうか。
今回はスコープをわかりやすく説明するためにあえてグローバル変数とローカル変数の名前を同じものにしました。
しかし、明確に変えた方がコードは読みやすくなります。
次回は、リスト型について紹介します。
なんとなくオブジェクト指向っぽくなってきました。
地道にやっていきます。