~~NOCACHE~~
## 10.関数(Python)
・関数はdefブロックで定義
・括弧()内に引数を指定
・returnで戻り値を取得
def 関数名(引数1, 引数2, ...):
処理
return 戻り値
### 関数の定義例
#### 返り値なし、引数なしの場合
def function():
print('Python')
function()
#### 返り値あり、引数なしの場合
def function():
str = 'Python'
return str
result = function()
print(result)
#### 返り値あり、引数ありの場合
def function(a, b):
x = a + b
return x
result = function(8, 3)
print(result)
### 引数の定義例
#### 位置引数(何番目の引数か)
def function(science, society, english):
print('science =', science)
print('society =', society)
print('english =', english)
function(30, 60, 80)
#### キーワード引数(どのキーワードの引数か)
def function(science, society, english):
print('science =', science)
print('society =', society)
print('english =', english)
function(english=80, science=30, society=60)
#### デフォルト引数
def function(science=50, society=50, english=50):
print('science =', science)
print('society =', society)
print('english =', english)
function()
#### デフォルト引数でlistやdictを使いたい場合
def function(point, score=None):
if score is None:
score = []
score.append(point)
return score
function(100, [1, 2, 3, 4])
# [1, 2, 3, 4, 100]
### 引数を集約して渡す方法
#### タプル
def function(name, *args):
print('Name =', name)
for _ in args:
print(_)
function('tanaka', 80, 60, 100)
# Name = tanaka
# 80
# 60
# 100
#### 辞書
def function(**kwargs):
print(kwargs)
function(tanaka=80, sato=60, suzuki=100)
# {'tanaka': 80, 'sato': 60, 'suzuki': 100}
def function(**kwargs):
for key, value in kwargs.items():
print(key, value)
score = {'tanaka': 80, 'sato': 60, 'suzuki': 100}
function(**score)
# tanaka 80
# sato 60
# suzuki 100
{{tag>Python}}