目次
Pythonの基礎学習2(関数編)
以前の「Pythonの基礎学習(ライブラリ/変数/配列)」の続きでPythonの基本的なことをまとめます。
前回のリンクは以下に貼っておきます。
今回は関数をメインにまとめてみました。
関数とは、共通的な処理を切り出したり、 機能を切り出したりして、処理をわかりやすく解釈するために使用できる。また、ソースコードを再利用することで、何度も同じコードを書かなくて済むようになります。
どういう関数を作るかはそれぞれなので、この時はこう!みたいな決まったものはありません。
フリーダム。
実行環境
- Windous10
- Python 3.7.5
関数宣言
関数を作るにはまず関数宣言をする。
今からこういう関数使いますとシステムに伝えることです。
def 関数名(引数):
ここの関数名はなんでもOK。 引数は関数内の処理で使うことができます。 関数を呼び出す側から、呼び出される関数に対して値を渡すことで、関数内でその値を使用することが出来ます。
特に関数内で使用したい値がないときは、指定しないことも可能です。 その場合は、以下のように宣言します。
def 関数名():
以下は関数の例です。
def test(ai): return ai>0 print test(1)
このtest関数は、「return ai>0」までが関数の中身になります。 「print test(1)」はtest関数を引数に1を指定して呼び出しています。
test関数は以下の用に動作します。 ■動作 引数「ai」が0より大きいかどうか比較し、「TRUE」か「FALSE」で返してくれる。
今回は引数に1を代入したので、「ai=1」となり、結果はTRUE。
引数は変数と考えてください。aiが変数で、「ai=1」と1の値が代入されているイメージです。
インデント
関数を作る上で気を付けないといけないのがインデントです。
関数宣言と、関数の中身が区別できるように、関数の中身にインデントをつける決まりとなっています。
このインデントがない場合、その行が宣言部分なのか中身部分なのかがわからずPythonエラーが出てしまう。
インデントは半角スペースを2の倍数ずつ(2個または4個)入れる必要があります。
def test(ai): return ai>0 print test(1)
このソースでいうと、一行目は関数宣言、二行目は関数の中身、三行目はその関数を使って出力指示を出しています。
これらがすべて同じ段落だと、二行目は関数の中身ではなく単品の命題文と判断される。
基本的には、「〇〇の中身でインデントをつける!」と意識していればOKです。
※IF文やFOR文なども中身を区別するためインデントをつける決まりです
おためし編
では関数を作って以前の記事のおみくじを改良してみます。
以前は順番の入れ替えはできましたが、おみくじ感が薄くイマイチだったので。
以下がhake(はけ)に助けられつつ作ったランダム関数です。
from random import random def omikuji(): if 0.1>random(): return"大吉" if 0.5>random(): return"吉" if 0.8>random(): return"凶" else: return"大凶"
まずPythonのrandomライブラリは random() と空白だと0~1までの数字(小数点あり)をランダムに出してくれます。
また、if文は上から順に優先でチェックしていきます。
上記をふまえて、random()の結果が0.1以下なら「大吉」の値を返す。0.5以下なら…。
else: は上記以外の場合です。今回なら0.8より大きい値ですね。
では結果を見てみましょう。
このようにランダムでおみくじの結果が見れるようになりました!!!
以上