Python独学ならTech-Joho TOP > Python入門カリキュラム > 関数とメソッドを使ってみる
関数とメソッドを使ってみる
Pythonでは、2つの数値が等しいか、それとも大小に差があるのかを、比べることができます。
下の黒い欄で、実際にPythonコードを実行してみよう。
関数は道具
プログラミングでいう「関数」は道具のようなものだと思って下さい。
何かのデータを「関数」という道具に入れると、何らかの結果のデータが返ってきます。
「関数」という言葉は高校の数学でもでてきます。
しかし、数学が苦手な方は、数学の関数はとりあえずおいておいて、「関数は道具」ということを理解して下さい。
長さを測る関数
lenという名前の関数があります。
これを使うと、いろいろなデータの長さを測ることができます。
黒い欄に、このようにlen(‘適当な文字列’)と入力してみてください。
>>> len('適当な文字列') 6
‘適当な文字列’という文字列の文字数6が表示されました。
len関数を使うには、lenの後ろに()を書き、その()の中に長さを測りたいデータを入れます。
例えば下のようにすれば、今度は8が返ってきます。
>>> len('aabbccddee') 8
引数、戻り値
()の中身を、引数(ひきすう)といいます。
関数から帰ってきたデータ(この場合8)を、戻り値(もどりち)といいます。
>>> 関数(引数) 戻り値
こんなイメージです。
ちなみに、戻り値は変数にとっておくこともできます。
>>> x = len('aiueo') >>> x 5
lenの練習
いろいろなデータをlen関数の引数にして、実行してみましょう。
1、’abcd’、[‘あ’, ‘い’, ‘う’]など….
データを文字列に変換する関数
strという関数を使うと、数値等のデータを、文字列に変換することができます。
どのような時に使うのか見てみましょう。
Pythonでは、数値同士の足し算ができます。
>>> 1 + 2 5
さらに、実は文字列同士の足し算?もできます。
>>> 'ごはん' + 'ですよ' 'ごはんですよ'
正確には足し算というより、文字列の結合、つまり文字列をつなげる処理です。
では、文字列と数値を足すとどうなるでしょうか?
>>> 'USO' + 800 Traceback (most recent call last): module __main__ line 145 traceback.print_exc() module line 1 'USO' + 800TypeError: Can't convert int to str implicitely
このように、エラーになってしまいます。
エラーを読むと、” Can’t convert int to str implicitely”と理由がかいてあります。
これは、int型のデータ(整数の数値)を、str型のデータ(文字列)に暗黙的に変換できません、といわれています。
要は、数値は数値と、文字列は文字列としか、足せません。
数値と文字列を足したいときは、どちらかにデータの型をあわせないといけません。
そのために、数値を文字列に変換する時、str関数を使います。
こんな感じです。
>>> 'USO' + str(800) 'USO800'
str関数は、文字列を表すstr型と同じ名前になっており、データをstr型に変換するということがわかりやすいと思います。
strの練習
いろいろなデータをstr関数の引数にして、実行してみましょう。
1、3.1415, “あいうえお”など…
>>> str(3.1415) '3.1415'
データを画面に出力する関数
printという関数を使うと、データの内容を画面に表示することができます。
今、下の黒い欄に例えば3.1415と打ち込んでエンターキーを押すと、3.1415と下に表示されます。
しかし、実はこれは特殊な環境で、本来、画面にデータの内容を表示するには、print関数を使う必要があります。
>>> print(3.1415) 3.1415
違いがわからないと思いますが、今後、今使っているWebブラウザから離れて、プログラムのファイルを作って実行する際には、print関数を使うことになります。
printの練習
いろいろなデータをprint関数の引数にして、実行してみましょう。
1、’abcd’、[‘あ’, ‘い’, ‘う’]など….
データにくっついている関数=メソッド
いろんなデータ型の専用の関数のことをメソッドといいます。
例えば、文字列型は自分専用の関数(メソッド)をたくさん持っています。
その一つが、文字列型は、自分自身を特定の文字列で区切る「split」というメソッドです。
splitメソッドは、引数の文字列で、自分自身を区切ります。
splitメソッドを使って、’Tokyo,Japan’という文字列に、addressという変数名を付けて、”,”(コンマ)で区切ってみます。みなさんも黒い欄で試してみて下さい。
>>> address = 'Tokyo,Japan' >>> address.split(',') ['Tokyo', 'Japan']
こんな風に、メソッドを使うときは、以下のよううに、変数名や定数名につづけて、”.”(ドット)をうち、次に変数名とカッコを入力します。引数はない場合もあります。
>>> 変数名.メソッド名(引数)
例えば文字列型には、小文字を大文字にするupperというメソッドがあります。
upperメソッドは引数がありません。
upperメソッドを使ってみます。
>>> address.upper() 'TOKYO, JAPAN'
メソッドの練習
好きな文字列を作って、split, upperのメソッドを実行してみてください。
>>> 'ごろはろん'.split('ろ') ['ご', 'は', 'ん']
>>> a = 'macbookpro' >>> a.upper() 'MACBOOKPRO'
次は、データの入れ物についてもっと詳しくやります。