今回は、Python での「関数」の使い方をご紹介します。
関数は、仕事で係を決めて分担することに似ています。
何か1つの仕事を完成させるために
- Aくんは商品の市場調査担当
- Bさんは商品の製造担当
- Cくんは商品のパッケージデザイン担当
- ・・・
のように、それぞれ役割分担して行うとやりやすいですよね。
プログラミングでも同じで、
ある1つの大きなことを成し遂げたいとします。
その時、大きいことをより小さいことに分解して、それぞれ別々に処理する
ということを考えると便利なことが多いです。
このそれぞれの処理を「関数」という形で書くことができます。
プログラミングで、関数はとてもよく使いますので、学んでおいて損はありません。
そこで本記事では、Python 関数のプログラミング について
- 関数とは?関数の意味
- 関数の定義、書き方、注意点
- 関数の実行、使い方、サンプルコード、具体例
などの基本知識をサクッとご紹介します。
【Python 文法 独学】Pythonでの関数プログラミング:関数とは?から、関数の意味や書き方、注意点、関数の実行方法や使い方、具体例やサンプル コードなど、サクッとまとめました【Python 学習 初心者】
関数とは?関数の意味
関数というと、中学高校での数学を思い出すかもしれません。
数学は苦手だったんだよね〜
って方も大丈夫です。
関数ってどんなものか、イメージだけつかんでおけばオッケーです。
関数のイメージは、ジュースの自動販売機みたいな感じなんです。
自販機では、お金を入れると、ジュースが出てきます。
押すボタンを変えれば、ボタンに応じたジュースが出てきます。
- オレンジジュースのボタンを押せばオレンジジュース
- コーヒーのボタンを押せばコーヒー
- ミネラルウォーターのボタンを押せばミネラルウォーター
のような感じです。
このように、自販機は、
ボタンを押すという入力「このジュースが欲しいという情報」を渡すと
その情報に応じた処理が行われ、
出力として「ジュース」を出してくれるわけです。
入力・処理・出力がひとまとまりになっっているわけです。
関数もまったく同じなんです。
関数とは
ある情報を与えたら、その情報に応じた結果を返すもの
のことになります。
入力・処理・出力をひとまとまりで関数と呼びます。
関数のプログラミングは、とてもシンプルで、
- 入力する情報
- 入力された情報を使った処理
- 得られた結果の出力
の3つをプログラミング言語で書くことになります。
Python での関数の書き方
Python での関数は、以下のような形をしています。
def 関数名( 入力 ):
処理
return 出力
(1), 関数ですよという目印「def」を書きます
(2), def の右横に、関数の名前をつけておきます。
(3), 関数の名前の右横に( )をつけて、
( )の中に「関数への入力」を書きます
(4), def行は、「:(コロン)」で終了します
(5), 下の行に進み、まず「インデント(右横にずらす)」をします
以下インデントすることで、関数の処理の部分を付け加えていくことができます。
(インデントってなに?については、下で解説しています)
(6), 処理の記述が終わったら、出力を書きます。出力は
return 出力
という形で書きます。
このように、Python の関数は、
- 関数名
- 入力
- 処理
- 出力
の4つを決めてあげれば骨格が決まります。
では実際に、関数のプログラミングをしてみますね。
Python 関数のプログラミングの書き方
関数では、入力、処理、出力を考えること必要でした。
ここでは、
- 入力:数字
- 処理:入力された数字を2倍する
- 出力:2倍の計算をした結果の値
- 関数名:2倍にする計算なので「double」
という例にして考えてみますね。
「関数の名前」はなんでもいいのですが、
後で見たときや、他人が見たときに内容がわかりやすいものがいいです。
今回の関数は「2倍する」ということなので、
それにちなんだ名前をつけるのがいいかと思います。
例えば、2倍はダブルなので、英語で「double」を関数名にしてみます。
「関数の入力」は、ある数字なので、数字の入った変数を受け取ることにします。
(変数名もなんでもいいのですが、ここでは hensu を使いますね)
ここまでで、関数の1行目が以下のように書けます。
def double( hensu ):
「関数の処理」は、2倍にするです。
ある変数に2をかけ算して、別の変数に代入すれば書けそうです。
(ここでは別の変数名を計算後の変数ということで hensu_after としますね)
すると、関数の処理は、以下のように書けます。
hensu_after = hensu * 2
「関数の出力」は、2倍した値を出力します。
2倍した値は、変数 hensu_after の中に入っています。
なので、以下のように書けます。
return hensu_after
以上をまとめると、Python の関数のプログラミング例としては、以下のようになります。
これだけです。関数はとてもシンプルですよね。
Python 関数の注意点とは
上の例で、赤字で書いたとことは、どの関数でも同じです。
まずはこの部分を間違えないようにしましょう。
- 関数定義の目印「def」
- 入力を書くための 「 ( ) 」
- def行終了の目印「:」
- 出力を書くための「return」
もう1つの注意点は
- 関数の処理と出力部分は「インデント」して書く
です。これもとても重要です。
インデントとは
インデントってなに?
と思われる方もおられるかもしれません。
インデントとは、その行の書き始めを右横にずらすこと、です。
関数の例で言うと、関数の処理と出力の部分がインデントされている行になります。
def double(hensu): の行の書き始めと比べて、
処理 hensu_after = hensu * 2
出力 return hensu_after
の行は、右横にずれていますよね。
この「ずらし」のことを「インデント」と呼びます。
関数の下にインデントした部分を書くと、
インデントした行は、関数の中身だと判断されます。
つまり、Pythonではインデントが情報を持っているわけです。
インデントは簡単にできる反面、
初学者の方では、エラーメッセージが出やすいところでもあります。
慣れるまで、インデントを意識しながらプログラミングすることで、
エラーに悩まされることが減るかと思います。
Python 関数の実行・使い方
上で説明した関数を定義したら、
次は関数の実行方法・使い方を知っておきましょう。
(ちなみに、関数を使うことを関数を「呼び出す」と言ったりします)
結論を先に言うと、関数は、
(関数の出力を入れる変数)= 関数名(入力する変数)
といった形で使うことができます。
どういうことか説明していきますね。
関数は、入力と出力の関係は、
出力=関数(入力)
のような形で書くことができます。
入力は何でもいいですが、ここでは5にします。
すると、
出力 = 関数(5)
と書けるわけです。
今回関数は「double」を使うとすると
出力 = double(5)
と書けます。
数字をそのまま書くのは汎用性が低いです。なので、
input_value = 5
のように変数を用意した後で、関数の入力にすると、
汎用性の高いプログラムになります。すると、
出力 = double( input_value )
と書けます。
出力には、関数の処理の結果が代入されます。
プログラムで書く時には、変数を使います。
例えば、ここでは出力「output_value」を変数名にしてみますね。
すると、
output_value = double( input_value )
と書くことができます。
この命令で、関数 double に input_value の中身 5 が入力されて、
処理、出力され、結果が output_value に代入されます。
もし結果を確かめたかったら
print( output_value )
などを使って表示すれば中身を確認できます。
関数の使い方は、
(関数の出力を入れる変数)= 関数名(入力する変数)
といった形で使うことができます。
Python 関数のプログラミングの具体例
Python 関数の定義の具体例・サンプルコード
In [3] では、関数 double を定義しています。
入力の変数として、hensu を使っています。
処理として、hensu の値を2倍して、
別の変数 hensu_after に代入しています。
出力として、hensu_after の値を返すようにしています。
Python 関数の実行の具体例・サンプルコード
上で関数を定義したら、次は関数を使い(呼び出し)ます。
In [11] では、入力の変数 input_value に3を代入し、
input_value を入力として、関数を実行しています。
関数の実行結果は、output_value に代入されます。
In [12] では、関数の実好結果を print関数で表示しています。
これで実行が正しいか確かめることができます。
3を入力して、6が出力しているので、
確かに2倍の計算が正しく行われています。
というわけで本記事では、
Python 関数のプログラミング について
- 関数とは?関数の意味
- 関数の定義、書き方、注意点
- 関数の実行、使い方、サンプルコード、具体例
などの基本知識をサクッとご紹介しました。
こちらもございます↓
「関数」については、こちらの書籍でも解説しています(無料)↓