サイトアイコン 天文学者のpython・音楽・お料理レシピ

python入門講座 | 関数の基礎3(関数を作成する方法)[第45回]

Ciao!みなさんこんにちは!このブログでは主に
(1)pythonデータ解析,
(2)DTM音楽作成,
(3)お料理,
(4)博士転職
の4つのトピックについて発信しています。

今回は「アラサーOLのためのpython入門講座」です!この講座では、プログラミング初心者アラサーOLのMi坊さんに、pythonを学習する上でのアドバイスを行います!「パソコンもプログラミングも初心者だけど、プログラミングができるようになりたい!」という方のためにstep-by-stepで解説していきます。

今日は関数の作り方を解説します。Pythonでは頻繁に行う処理を自作の関数として定義しておくことができます。関数を定義して使うことで、コードが読みやすく直しやすくなり、効率的にプログラミングができます!

この記事を読めば、関数の基礎知識について知ることができます。ぜひ最後までお付き合いください!

Kaiko

この記事はこんな人におすすめ

  • 初心者だけどpythonを始めた!
  • pythonの基本的な使い方を知りたい!
  • 独学で学んだpythonの知識を整理したい!

Abstract | 関数を作成して効率的にプログラミング

組み込み関数を使うだけでなく、自分で関数を作成して使うことで効率的にプログラムを書くことができます。関数は「def 関数名():」で始まるブロックを作ることで定義することができ、このブロックに処理をまとめておくことができます。その処理を行いたいときには、関数名()で呼び出すだけです。プログラムが長くなればなるほど、処理が複雑になればなるほど、関数をうまく使って読みやすく、わかりやすいコードにすることが重要です。関数の使い方をマスターしましょう!



Background | 関数の基礎知識をおさらい

関数とは、よく行う処理をまとめたものです。繰り返し登場する処理を関数としてまとめておくことで、シンプルでわかりやすいコードにすることができます。プログラムがある程度複雑になると、複数行に渡るような処理を何回も行う必要がある場面が出てきます。このとき、繰り返し登場する処理をそのままコピー&ペーストで増殖させてしまうと、

など、プログラミングの手間が増えて効率が落ちます。

関数を使って処理をまとめることで、その処理を行う際に関数を呼び出す1行だけを書けば良くなります。ソースコードがシンプルで短くなるので、どこで何をしているのかわかりやすくなります。また、処理内容を修正したり変更したいときには、関数を定義した箇所を一つだけ変更すれば済みます。このように、関数を使って繰り返し登場する処理をまとめることで、効率よくプログラミングができるようになります。

関数については以下の過去記事もありますので、参考にご覧ください。

前回はPythonに予め定義されている組み込み関数の挙動を見てみました。今回は自作の関数を定義していましょう!



Method | 関数を作成する方法

実際に手を動かしながら学んでいきましょう!Jupyter Notebookを立ち上げてコーディングしながら読み進めてください。練習問題の後にコーディング例も掲載しますので、やってみてどうしてもわからなければそれを見て進めてください。



準備 | python notebookの新規作成

まずはpython notebookを用意しましょう。いつものpython_practiceのディレクトリに「practice_func_define」という名前のpython notebookを作成してください。ターミナルを立ち上げて~/python_practiceに移動、jupyter notebookを起動し、ブラウザから新規→Python3でpython notebookを開いて、ファイル→リネームでファイル名を決定します。
もしやり方がわからなければ、過去記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」で詳しく解説しているので、これを見ながらやってみてください。

python notebookを起動したら、適宜Markdownセルに説明書きを加えながら下記の説明に沿ってコードを書いて実行していきましょう。Markdownセルやコードセルなどの用語やこれらの使い方についても、過去記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」を参照してください。練習問題の後にpython notebookの例を掲載します。もし書き方がわからなければそちらを見てください。



関数の作成方法

今回はシンプルに引数を取らない関数を作ってみましょう。引数なしの場合、関数は

def 関数名():
    処理...

と定義します。

関数名はあとでこの関数を呼び出すときに必要です。その関数でどのような処理を行うのかがわかりやすい名前をつけましょう。

丸括弧の中には引数を定義します。引数なしの場合、関数名のあとの丸括弧は空欄です。引数を取る場合については次回以降扱います。

関数を定義する行の最後には最後にコロン(:)を忘れずにつけましょう。コロンで終わった次の行からインデントして処理を書きます。インデントが解除されるまでが関数の内容となります。



関数を呼び出す方法

関数を呼び出して使うときは、

関数名()

と関数名に丸括弧を付けて書きます。丸括弧の中には与えたい引数を書きますが、今回は引数なしの関数なので空欄です。関数を呼び出すには最後のコロンは不要です。



関数の作成・呼び出し例

関数を実際に作成してみましょう。

1行の処理を行う例

まずは単純に、処理を1行だけ行う例を作ってみましょう。「Hello, world!」を出力する関数HelloWorldを定義します。以下を実行してみましょう。

# define a simple function
def HelloWorld():
    print('Hello, world!')

ここでは関数を定義しただけなので、実行しても何も出力されません。

関数が定義されていることは、関数自体のオブジェクトを見れば確認できます。関数名の後ろに丸括弧をつけなければ、関数が実行されるのではなくオブジェクトが呼び出されます。以下を実行してみましょう。

# see the function
HelloWorld

実行すると以下のような出力となり、関数が定義されていることがわかります。もし関数が定義されていない場合はエラーとなります。

<function __main__.HelloWorld()>

関数を実行してみましょう。以下を実行してみましょう。

# call the function
HelloWorld()

実行すると、

Hello, world!

と表示されるはずです。



複数行の処理を行う例

少し複雑な、複数行に渡る処理を行う例を作ってみましょう。最初にint型変数nを定義し、それが奇数か偶数か判定する関数です。以下を実行してみましょう。

# define a function
def OddEven():
    # define an int instead of giving it as an argument
    n = 15
    
    # show the value of n
    print('n = ', n)
    
    # see if n is even or odd
    if(n % 2 == 0):
        print(' n is even')
    else:
        print(' n is odd')

この関数のif文の部分では、nを2で割った余りが0かどうかを確認することで、nが奇数か偶数かを判定しています。

なお、本来このような関数では、nは引数として与えることにするのが常道です。そうすれば任意の数を引数で与えて奇数か偶数か判定することができます。今回は引数を取らないため、代わりに最初に定義しています。

関数を実行してみましょう。以下を実行してください。

# call the function
OddEven()

nは15として定義されているので、当然奇数です。実行結果は以下のとおりです。

n =  15
 n is odd



Result | 練習問題

練習問題をやってみましょう。以下の処理を行うコードを書いてみましょう。

  1. 「Hello, python!」と出力する関数HelloPythonを作成してください。
  2. HelloPythonを呼び出してください



練習問題の回答例

練習問題の回答が完成したら回答例を確認しましょう!下の画面をスクロールすると回答例が見られます!参考にしてみてください。また、今回の記事で出てきた他のコードも載っているので参考にしてください!

練習問題おつかれさまでした!
今日はここまでです。Python Notebookを終了しておきましょう。もしPython Notebookを終了方法がわからなければ過去記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」の「Python Notebookの起動・終了方法」の章を参照してください!



Conclusion | まとめ

最後までご覧いただき、ありがとうございます!
関数を定義する方法を解説しました。複雑な処理でも関数として定義しておくだけで、関数名だけを書いて呼び出し、実行することができます。関数を使いこなせるようになりましょう!

以上「python入門講座 | 関数の基礎3(関数を作成する方法)」でした!
またお会いしましょう!Ciao!



Reference

以下の教科書を参考にして進めています!より詳しく学びたい方は購入して読んでみてください!

Pythonの参考教科書

モバイルバージョンを終了