[Claude3で遊ぶ]ポアロと学ぶ関数
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