関数とメソッドを使ってみる | Python独学ならTech-Joho(7)

関数のイメージ

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'

次は、データの入れ物についてもっと詳しくやります。


Author: 管理

tech-joho.infoの管理人です。いろいろな技術について勉強しています。