🔍

[Claude3で遊ぶ]ポアロと学ぶ関数

2024/03/17に公開

GPT4より高性能と噂のClaude3で、ポアロ風の文章を書いてみました。
シャーロックホームズを再現したときと比べて、何も設定しなくてもポアロの朝食風景を描き出してくれました。
Claude3は明らかにホームズよりポアロの方が解像度は高いです。

関数の不思議

ある朝、ポアロが食堂に入ると、ヘイスティングスが難しい顔をしていた。

「おはよう、ポアロ。実は昨晩から関数について考えているんだが、なかなか腑に落ちないんだ」

ポアロは友人の隣に座ると、コーヒーを一口すすった。

「ふむ、関数とは不思議なものだからね。私に説明させてくれ」

関数の役割

ポアロはナプキンで口元を拭うと、話し始めた。

「そもそも関数というのは、特定の処理をまとめたプログラムのことだ。Google検索を思い浮かべてごらん」

def google_search(keyword):
    # 検索処理
    return search_result

「キーワードを入力すると、何らかの結果が返ってくる。これが関数の役割そのものなのさ」

ヘイスティングスは感心したように頷いた。

「なるほど、入力を受け取って出力を返す、と」

「そうだ。それも裏側の複雑な処理を隠蔽しながらね。利用者は中身を意識せずに済む」

ポアロはコーヒーカップを置いた。

「関数を使えば、プログラムの見通しが良くなる。一度作ってしまえば、何度も呼び出せる。他人とも共有可能だ」

関数の利点を列挙していく。

「つまり、関数は優れたプログラミングの道具というわけか」

「まさにその通り。君も上手に使いこなせるようになるといい」

関数の定義

二人は食事を再開した。やがてヘイスティングスが口を開く。

「ところで、関数の作り方というのは?」

「defineを使うんだ。defと略すこともある」

def function_name():
    # 処理内容

「関数名を決めて、その下に処理を書く。インデントは忘れずにね」

「ふむ、なんとなく分かった気がする」

ヘイスティングスはメモを取り始めた。

引数と戻り値

「次は引数だ。関数に値を渡すための仕組みだよ」

def function_name(argument1, argument2):
    # 処理内容

「引数は複数設定できる。デフォルト値を用意しておくことも可能だ」

「で、処理結果を関数の外に返すのが戻り値か」

def function_name(argument):
    # 処理内容
    return return_value

「その通り。これらを駆使すれば、非常に柔軟なプログラミングができるというわけさ」

ポアロはナイフとフォークを置いた。話は尽きることがない。

組み込み関数

「Pythonには最初から用意されている関数もあるんだろう?」

「ああ、組み込み関数のことかい?」

ポアロの目が輝いた。

「printやlenなんかが代表的だね。とても便利だよ」

print("Hello, world!")

mylist = [1, 2, 3]  
length = len(mylist)

「enumerateを使えば、リストの要素とインデックスを同時に取得できる」

for index, item in enumerate(mylist):
    print(index, item)

「組み込み関数を適切に使いこなすのも、プログラミングの醍醐味だ」

ポアロは満足げに言った。

「私も色々試してみるよ。きっと関数の虜になってしまうだろうな」

ヘイスティングスはワクワクした面持ちで言った。

「それは疑いようのない事実だ。プログラミングの世界へようこそ」

ポアロは最後のコーヒーを飲み干した。朝食の時間は終わりに近づいている。

「関数について、だいぶ見えてきた気がするよ。さっそく実践してみるとしようかな」

「うむ、それが一番の理解法だ。困ったことがあればいつでも相談にのろう」

二人は食堂を後にした。ヘイスティングスの心は躍動していた。新しい扉が開かれたのだ。Pythonの広大な世界が、彼の前に広がっている。関数の不思議は、より多くの人々を魅了していくことだろう。

Discussion