■ はじめに
関数に関する以下を学ぶ
目次
【1】 関数 【2】 ローカル変数 / グローバル変数 1)ローカル変数 2)グローバル変数 【3】 戻り値・複数 【4】 値渡し・参照渡し 1)値渡し(call by value) 2)参照渡し(call by reference) ※それ以外の関数についての事項は、以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2020/11/02/000000
【1】 関数
構文
def 【関数名】(引数1, 引数2, ..., 引数n): ステートメントブロック
例1
def plus(value1, value2): return value1 + value2
例2
# coding: UTF-8 def sayHello(name = "World"): print("Hello %s!" % name) def getHello(name = "World"): return "Hello %s!" % name sayHello() sayHello("Tom") result = getHello("Mike") print(result)
出力結果
Hello World! Hello Tom! Hello Mike!
【2】ローカル変数 / グローバル変数
1) ローカル変数
def sample_function(): # ローカル変数 local_value = 'World!'
2) グローバル変数
global 宣言 (global statement)
global_value = 'Hello' def sample_function(): # グローバル関数であること明示する global global_value global_value = 'World!' # 詳細は、以下の関連記事を参照
Python ~ 基本編 / global変数 ~
https://dk521123.hatenablog.com/entry/2019/12/12/232749
参考文献
https://qiita.com/msssgur/items/12992fc816e6adf32cff
https://uxmilk.jp/12505
【7】戻り値・複数
Javaなどの他のプログラム言語とは異なり、 複数の戻り値を返すことができる
サンプル
def demo(): return 'Hello', 'World', 'Mike' value1, value2, value3 = demo() print("{} {}, {}!".format(value1, value2, value3))
出力結果
Hello World, Mike!
【8】値渡し・参照渡し
1)値渡し(call by value)
def func(n): print(n) n = n + 1 print(n) # 文字列 x = 10 print(x) print("Before") func(x) print("After") print(x)
出力結果
10 Before 10 11 After 10
2)参照渡し(call by reference)
def func(n): print(n) n[0] = n[0] + 1 print(n) # リスト x = [10, 20] print(x) print("Before") func(x) print("After") print(x)
出力結果
[10, 20] Before [10, 20] [11, 20] After [11, 20]
参考文献
動画
http://dotinstall.com/lessons/basic_python_v2/26019
http://dotinstall.com/lessons/basic_python_v2/26020
関連記事
Python ~ 基本編 / 関数・あれこれ ~
https://dk521123.hatenablog.com/entry/2020/11/02/000000
Python ~ 基本編 / 文字列 ~
https://dk521123.hatenablog.com/entry/2019/10/12/075251
Python ~ 基本編 / global変数 ~
https://dk521123.hatenablog.com/entry/2019/12/12/232749
Python ~ 基本編 / yield ~
https://dk521123.hatenablog.com/entry/2021/03/18/000000