Ciao!みなさんこんにちは!このブログでは主に
(1)pythonデータ解析,
(2)DTM音楽作成,
(3)お料理,
(4)博士転職
の4つのトピックについて発信しています。
今回は「アラサーOLのためのpython入門講座」シリーズです!この講座では、プログラミング初心者アラサーOLのMi坊さんに、pythonを学習する上でのアドバイスを行います!「パソコンもプログラミングも初心者だけど、プログラミングができるようになりたい!」という方のためにstep-by-stepで解説していきます。
今日は組み込み関数についてお話します。Pythonにはよく行われる処理が「組み込み関数」として用意されています。これらの関数を用いることで、効率的にプログラミングができます!
この記事を読めば、関数の基礎知識について知ることができます。ぜひ最後までお付き合いください!
この記事はこんな人におすすめ
- 初心者だけどpythonを始めた!
- pythonの基本的な使い方を知りたい!
- 独学で学んだpythonの知識を整理したい!
Abstract | 実際に手を動かして関数による処理をやってみる
今回は組み込み関数について扱います。組み込み関数とはPythonに予め定義されている関数です。例えば、len()関数、print()関数、type()関数などです。今回はlen()を題材に、入力となる引数の型や数など、組み込み関数を使うときの基本を見ていきます。
組み込み関数に限らず、関数では通常、引数の型や数が予め決まっています。引数の型や数が合わないとエラーとなって処理ができません。実際に手を動かして、どのような場合にエラーとなり、どのような場合にならないのかを見ていきましょう。
Background | 関数の基礎
関数とは、よく行う処理をまとめたものです。繰り返し登場する処理を関数としてまとめておくことで、シンプルでわかりやすいコードにすることができます。プログラムがある程度複雑になると、複数行に渡るような処理を何回も行う必要がある場面が出てきます。このとき、繰り返し登場する処理をそのままコピー&ペーストで増殖させてしまうと、
- あとで見直したときに、どこで何をしているのかすぐにわからない
- 修正したいときに、あらゆる箇所を直さなくてはならない
など、プログラミングの手間が増えて効率が落ちます。
関数を使って処理をまとめることで、その処理を行う際に関数を呼び出す1行だけを書けば良くなります。ソースコードがシンプルで短くなるので、どこで何をしているのかわかりやすくなります。また、処理内容を修正したり変更したいときには、関数を定義した箇所を一つだけ変更すれば済みます。このように、関数を使って繰り返し登場する処理をまとめることで、効率よくプログラミングができるようになります。
関数については以下の過去記事もありますので、参考にご覧ください。
Method | 組み込み関数の挙動を見てみよう
では、組み込み関数の挙動を実際に手を動かしながら学んでいきましょう!Jupyter Notebookを立ち上げてコーディングしながら読み進めてください。練習問題の後にコーディング例も掲載しますので、やってみてどうしてもわからなければそれを見て進めてください。
準備 | python notebookの新規作成
まずはpython notebookを用意しましょう。いつものpython_practiceのディレクトリに「practice_func_builtin」という名前の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の例を掲載します。もし書き方がわからなければそちらを見てください。
関数の引数
関数とは引数(argument)を入力とし、何らかの処理を行って出力を返り値として返すものです(前回記事python入門講座 | 関数の基礎1(関数を使う意義)も参照)。入力となる引数に取れる変数の型は関数ごとに決まっています。組み込み関数でも、前回記事で作った自作の関数でも同様です。例えば、今回扱うlen()関数ではstr型やlist型を引数に取ることができますが、int型、float型、bool型などは引数に取ることができません。
引数の型が正しい場合のlen()関数の挙動
len()関数の引数を題材に、正しい型の変数を入れた場合とそうでない場合の挙動を見てみましょう。まずは引数の型が正しい場合です。
list型を引数とした場合
list型の変数を引数とした場合の挙動を確かめましょう。以下を実行してください。
# define a list variable
var = [1, 2, 3, 4]
# get len
len(var)
この例では、まず要素が4つのlist型の変数varを定義しています。次にlen()関数にvarを渡します。このようにlen()関数にlist型を渡した場合には要素数が返されます。
実行結果は以下の通りです。
4
str型を引数とした場合
次に、str型の変数を引数とした場合の挙動を確かめましょう。以下を実行してください
# define a str varriable
var = 'python'
# get len
len(var)
この例では、まず6文字のstr型の変数varを定義しています。次にlen()関数にvarを渡します。このようにlen()関数にstr型を渡した場合には文字数が返されます。
実行結果は以下の通りです。
6
引数の型が正しくない場合のlen()関数の挙動
次に、引数の型が合わない場合の挙動を見てみましょう。
int型を引数とした場合
int型の変数をlen()関数の引数に入れてみましょう。以下を実行してください。
# define an int variable
var = 2
# get len
len(var)
この例では、まずint型の変数varを定義しています。次にlen()関数にvarを渡します。
結果は以下のようにエラーとなります。「int型にはlen()は存在しないよ」というメッセージが出ていますね。
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) /var/folders/cc/zd_rdmgn14z8hw956cpfjt480000gn/T/ipykernel_32704/2499741774.py in <module> 3 4 # get len ----> 5 len(var) TypeError: object of type 'int' has no len()
float型を引数とした場合
float型の変数をlen()関数の引数に入れてみましょう。以下を実行してください。
# define a float variable
var = 3.14
# get len
len(var)
この場合にも以下のようにエラーとなります。
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) /var/folders/cc/zd_rdmgn14z8hw956cpfjt480000gn/T/ipykernel_32704/1172510634.py in <module> 3 4 # get len ----> 5 len(var) TypeError: object of type 'float' has no len()
引数の数が合わない場合
関数の引数は型だけではなく、数も決まっています。len()関数であれば、一つだけです。試しに複数入力した場合を見てみましょう。以下を実行してください。
# define two variables
var1 = [1,2,3]
var2 = ['a', 'b', 'c']
# get len
len(var1, var2)
ここでは、var1とvar2という2つのlist型変数を定義し、両方をlen()関数に渡しています。もちろんこれはエラーとなります。実行すると以下のように表示されます。
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) /var/folders/cc/zd_rdmgn14z8hw956cpfjt480000gn/T/ipykernel_32704/2097974202.py in <module> 4 5 # get len ----> 6 len(var1, var2) TypeError: len() takes exactly one argument (2 given)
Results | 練習問題
練習問題をやってみましょう。以下の処理を行うコードを書いてみましょう。
- 「jupyter」というstr型変数var_strを定義し、その長さをlen()とprint()を用いて出力してください
- 1, 3, 5, 7という要素を持つlist型変数var_listを定義し、その長さをlen()とprint()を用いて出力してください
練習問題の回答例
練習問題の回答が完成したら回答例を確認しましょう!下の画面をスクロールすると回答例が見られます!参考にしてみてください。また、今回の記事で出てきた他のコードも載っているので参考にしてください!
練習問題おつかれさまでした!
今日はここまでです。Python Notebookを終了しておきましょう。もしPython Notebookを終了方法がわからなければ過去記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」の「Python Notebookの起動・終了方法」の章を参照してください!
Conclusion | まとめ
最後までご覧いただき、ありがとうございます!
len()関数を題材に、組み込み関数について解説しました。len()やprint()などのよく使われる組み込み関数については、慣れてくれば引数の型や数を意識せず使えるようになります。一方で、使い慣れていない関数や外部ライブラリの関数や自作関数を用いるときには、エラーなく処理できるよう引数の型や数に注意する必要があります。自在にコーディングできるよう基礎を押さえましょう!
以上「python入門講座 | 関数の基礎2(組み込み関数)」でした!
またお会いしましょう!Ciao!
Reference
以下の教科書を参考にして進めています!より詳しく学びたい方は購入して読んでみてください!
Pythonの参考教科書
- 現場で使える! Python深層学習入門 Pythonの基本から深層学習の実践手法まで (AI & TECHNOLOGY)
深層学習をpythonで学ぶための教科書ですが、最初の60ページぐらいがpythonの基礎的な解説に割かれています。簡潔にまとまっていてわかりやすいです。