見出し画像

オライリーの「Pythonチュートリアル 第3版」を貰いました。

以前のnoteで「Python3エンジニア認定基礎試験を受験する」と宣言することで、Pythonに関する本がもらえるかもしれない、みたいな話を書いたのですが、実際に届きました!

該当SNSにnoteがなかったのでちょっと不安でしたが大丈夫でした。

無題

▲わーい。

少し読み始めましたが、普段趣味程度でコードを書いていると中々気にしない部分がいろいろ出てきて面白いです。一人でプログラミングをしていると、最初に書いたコードがベースになってそこに付け足しをしていくような感じになるので、使わない機能はずっと使わなくなっちゃうんですよね。
特に「へー」と思ったのは関数のデフォルト引数で、模擬試験の問題とかにも出ていたので、メモを残しておきます。

n = 4

def print_num(num=n):
   print(num)
   
n = 15

print_num()

▲例えばこんなコードがあったとします。引数の数字を表示するだけの関数print_numがあり、デフォルト引数としてnumが与えられています。

これを実行すると何が表示されるでしょうか?

4

▲4が表示されます。

パッと見た感じ関数の呼び出し前にnに15を代入しているので15が表示されるようにも見えますが、よく見ると関数呼び出し部分はprint_num()で引数を与えていません。
つまり関数定義時に与えられたデフォルト引数が生きるということみたいです。定義時にはデフォルト引数をnum=nにして、この時のnには4が入っているわけですから、引数無しで呼び出すと4が表示されるということでしょう(多分)。

n = 4

def print_num(num=n):
   print(num)
   
n = 15

print_num(n)

▲ちなみにこのようにprint_num関数を呼ぶ際に再度nを引数として与えると表示は15になります。

プログラミングを勉強するときには手を動かして何か作りながら学ぶのが大事だと思っていますが、やっぱり一度網羅的に何か教本のようなものを読むのも必要だなぁと思った次第でした。

ここまで読んでいただき、ありがとうございました。
Python3エンジニア認定基礎試験については、また進展があり次第noteに書こうと思います。

ここまで読んでいただきありがとうございます!