python coding : アナグラム(レベル⭐️)
以下のnotebookに基づいて、chatGPTが書きました。
プロンプト変えたら、熱心な先生のようになりました。
ちょっとくどいかな。
はじめに:プログラミングは難しい?いいえ、楽しいんです!
「Pythonに興味があるけど、自分には無理かも…」そんなふうに思ったことはありませんか?でも、今日は安心してください!Pythonで遊び感覚でできる楽しいプログラム作りを通して、「できる!」という実感を得られるはずです。
今回のテーマは「アナグラム判定」。アナグラムとは、文字の並びを変えて新しい意味を作る言葉遊びです。このシンプルな問題に取り組みながら、プログラミングの基本と楽しさに触れてみましょう。小さなステップで進めるので、焦らず自分のペースでチャレンジしてください!
Step 1: 入力を小文字に変換しよう – 最初の一歩を楽しむ
まずは基本中の基本、小文字に変換する操作です。Pythonでは、文字をすべて小文字に変換する簡単な方法があります。
word = "Listen"
print(word.lower()) # 結果: 'listen'
これだけで、"Listen"が"listen"になります!小さな一歩ですが、まずは成功体験を一つ積みましょう。この感覚が、次のステップへのエネルギーになります。
Step 2: アルファベット順に並べ替える – シンプルな工夫で進化
次に、文字をアルファベット順に並べ替えます。ここでのポイントは、「アナグラムは並べ替えると同じ文字列になる」という発見です。
word_sorted = sorted(word.lower())
print(word_sorted) # 結果: ['e', 'i', 'l', 'n', 's', 't']
リストとして並んだ文字を確認してみましょう。同じ文字を持つ単語なら、こうして同じ順序に並びます。ここまできて、少しプログラムが形になってきたのを感じますね。
Step 3: リストを文字列に戻す – もう一つの成功体験
並べた文字を、再び一つの文字列としてまとめましょう。リストの状態では比較がしづらいので、文字列に戻してスッキリさせます。
word_sorted_joined = ''.join(word_sorted)
print(word_sorted_joined) # 結果: 'eilnst'
少しずつですが、プログラムの完成に近づいているのが実感できますね!ここでまた「できた!」という小さな成功体験を感じてください。
Step 4: アナグラム判定の核 – 二つの単語を比較する
もう一つの単語にも同じ操作を適用し、二つの単語が同じ文字列かどうかを比較してみましょう。
word1 = "Listen"
word2 = "Silent"
word1_clean = ''.join(sorted(word1.lower()))
word2_clean = ''.join(sorted(word2.lower()))
print(word1_clean == word2_clean) # 結果: True
ここで「True」と出ればアナグラム成功です!自分で手を動かして「合っている!」と確認できるのが、このプログラミングの楽しさです。こうして毎回「できた!」と感じられる小さな達成感が、次の学びへの原動力になります。
Step 5: 関数としてまとめよう – もっとスマートに
ここまで完成したら、最後に一つの「関数」としてまとめてみましょう。これで、アナグラム判定が簡単に再利用できるようになります。Pythonでは、このように関数化することでプログラムをよりスッキリさせることができます。
def is_anagram(word1, word2):
word1_clean = ''.join(sorted(word1.lower()))
word2_clean = ''.join(sorted(word2.lower()))
return word1_clean == word2_clean
# テスト
print(is_anagram("Listen", "Silent")) # 結果: True
print(is_anagram("dog", "cat")) # 結果: False
これで、自分の手でプログラムを完成させました!どんな単語でも簡単にアナグラム判定ができる「道具」を手に入れた瞬間です。
次なる挑戦 – Pythonで広がる可能性
アナグラム判定ができたら、「他の言語でもできるかな?」と試してみたり、「単語のリストの中からアナグラムを見つける」といった応用にも挑戦してみましょう。Pythonにはまだまだ奥が深い機能がいっぱい。簡単なことから始めて、自分の興味に沿ってプログラムを拡張していくと、さらに「自分にもできる!」という自信が湧いてきます。
結び:楽しみながら成長を感じる学びの旅
ここまで来たあなたは、Pythonの楽しさを感じる第一歩を踏み出したばかりです。プログラミングはただの技術ではなく、自分で問題を解決する力をつける「冒険」です。自分のペースで焦らず、たくさんの小さな成功を積み重ねていきましょう。次に学びたいことが増え、ワクワクする未来が広がっているのを感じながら、これからもPythonの旅を楽しんでください!
以上、chatGPT
参考:文字を小文字に揃えたり、ソートするのは、ここでも使いました。
最後に
この記事の課題は、私が師と仰ぐ、
「かめ@米国データサイエンティスト」 さんのコミュニティーの中の coding_challenge の課題を参考にしています。
3年くらい前から、「かめ@米国データサイエンティスト」 さんのブログ、Udemy講座などで、pythonとDSをゆっくり勉強中です。