関数
関数は複数の処理をひとつにグループ化したものです。
関数を使うことで同じ処理を何度もコピー&ペーストしなくても良くなり、ソースコードが読みやすく、また間違いが少なくなります。
関数を定義するときにはdef に続けて関数名と引数を記述します。
code:python
def 関数名(1つ目の引数, 2つ目の引数):
関数で行う処理
return 返り値
関数は好きなだけの数の引数を設定でき、return 文で好きなだけの数の値を返すことができます。
引数と return 文はなくても構いません。
code: def_sample1.py
def add(a, b):
return a + b
def greeting():
name = input('Please Input:')
text = 'Hello! My name is %s.' % name
print(text)
# add() を使う時は以下のようにします
answer = add(2, 3)
print(answer)
# greeting() を使う時は以下のようにします
greeting()
関数が複数の引数を受ける場合では、呼び出すときに同じ数の引数を、定義した順序で与える必要があります。
code: def_sample2.py
def sample(a, b):
print(a, b)
# 呼び出し例 1
sample('one', 'two')
# "one two" と表示されます。
# 呼び出し例 2(間違った呼び出し方)
sample('one', 'two', 'three')
# 以下のように表示されます。
# Traceback (most recent call last):
# File "<stdin>", line 9, in <module>
# TypeError: sample() takes 2 positional arguments but 3 were given
# 呼び出し例 3(間違った呼び出し方)
sample('one')
# 以下のように表示されます。
# Traceback (most recent call last):
# File "<stdin>", line 17, in <module>
# TypeError: sample() missing 1 required positional argument: 'b'
引数のデフォルト値を与えて関数を定義することもできます。
code: def_sample3.py
def sample(a, b='two'):
print(a, b)
sample('one')
# "one two" と表示されます。
関数定義で使われている引数の変数名を呼び出し時に与えると、呼び出し時の引数の位置が関係なくなります。
これをキーワード引数といいます。
code: def_sample4.py
def sample(one='one', two='two'):
print(one, two)
sample(two=2)
# "one 2" と表示されます。
sample(two=2, one=1)
# "1 2" と表示されます。
実践ドリル