関数についてまとめる

こんにちは、独学エンジニアの慎太郎です。

今回は関数について学習したことをまとめます。

モジュールについて

モジュールとは、呼び出すだけで処理することができるもの。例えば、randomというモジュールは、ランダムな値を生成する関数を含んでいるモジュール。

このrandomモジュールをプログラムすると、random.関数()という形で簡単に関数を使うことができる。

また、もっと効率よくプログラミング するために、呼び出し時にfrom random import randint, choice, shuffleという形で設定しておくと、関数だけで使用することができる。

つまり、random.関数()のrandom.を記述しなくても良いので、効率的になるということ。

関数を定義する

関数を自分で作ることもできる。

関数の基本的な動きは、関数に値(引数)を渡すと結果を返す(戻り値)ということ。

例えば、add_one(x)という関数を定義したとする。この関数はxに好きな数字すなわち引数を入れると、+1をして値を返すという動きをする。

また、関数を定義するときに必ず def という宣言で始め、戻り値は「return 処理内容」という形で表現する。

def add_one(x):
  return + 1 *処理内容を記述する行にはインデント(半角スペース4文字分)を忘れずに!

result = add_one(1)
print(result)

こうすると、2という数字が返ってくる。

その一方で、戻り値がない関数もあり得る。例えば、

def print_morning():

print(“Morning”)

print_morning()

これを実行すると、Morningが表示される。関数では処理内容を定義するだけで、戻り値がない。こういうケースもあるということを覚えておく。

注意したいことは、引数と戻り値はセットではないということ。なぜなら、引数は数字だけでなく、文字列の場合もあるからだ。

複数の戻り値を使う

return文には、複数の戻り値を入れる事ができる。例えば、

return 戻り値1, 戻り値2, 戻り値3のような形。

これがどのように変数に返っていくかというと、2パターンある。

1つ目は、指定した複数の変数にそれぞれ戻っていくパターン。例えば、

def div_and_mod(x, y):

div = x//y

mod = x % y

return div, mod

div1, mod1 = div_and_mod(100, 23)

とすると、戻り値div modは、それぞれdiv1, mod1に代入される。

2つ目のパターンは、複数の戻り値を1つの変数に代入するパターン。

つまり、div1 = div_and_mod(100, 23)となる場合。

この場合は、タプルとして代入される。このケースで言えば、(4, 8)というアウトプットになるということ。

学習中に気づいたこと

引数は、分かりやすいnameであればなんでも良さそうだ。

単語にしなくても、x にするとか。

実際にプログラム内でその関数を使う場合は、xとした部分はコード内にあるリストだったり、変数だったりに変えて記述する。

例えば、

def mean (x):

return sum(x)/len(x)

という関数を定義したら、その後プログラム内で使用する場合、

mean(data)とか、xにしていた部分をコード内にある別の変数を指定して使用すればいい。

まとめ

今日は関数について学びました。

関数は元々定義されているものであれば、モジュールから関数をインポート(from モジュール import 関数)で利用する事ができるし、定義されていないものでも、自ら定義して処理内容を決めれば作ることができる。

関数を自由自在に使いこなす事ができれば、自分がしたい処理を自由に定義する事ができそうです。

この記事が気に入ったら
いいね ! しよう

コメントを残す