第十八回 『検索プログラム』について

プログラミング編

検索について

マサト先生
マサト先生

やあ、こんにちは。今日は『検索』についてやっていこう。

ヒロト
ヒロト

はい、よろしくお願いします。

マサト先生
マサト先生

インターネットなどで情報を検索するときは、ある単語を指定して検索している。ここでは文字列の中から単語を検索するプログラムを書いてみよう。

ヒロト
ヒロト

はい、いつもインターネットには検索のお世話になっているので、どういう仕組みなのか知るのが楽しみです!

マサト先生
マサト先生

うむ。まずは次のプログラムを見てほしい。

具体例

マサト先生
マサト先生

上のプラグラムは、1行目で animal というリストを作っている。要素は見ての通り6匹の動物の名前が入っているぞ。3行目で key という変数にキーボードから単語を入力し、4~6行目の for文でリストanimalの要素を変数 i に代入していき、key と等しかったら表示するようになっているぞ。納得したら、実際に書いて実行してみるといいだろう。

ヒロト
ヒロト

はい!今回は『file46』から始めます。

ヒロト
ヒロト

ちゃんと指定した単語『dog』が表示されました!

とても便利な『split関数』

マサト先生
マサト先生

うむ。ただ1行目のリストを書くのが大変だっただろう?一語一語シングルクォーテーションの間に書かなくてはいけないからな。これは、『split関数』を用いることで解消されるぞ。split関数は単なる文字列をリストに変換してくれる便利なものだ。下のプログラムを見てほしい。

マサト先生
マサト先生

上のプログラムでは、1行目で animal という変数に単なる文字列を代入している。そして、2行目でsplit関数が、文字列animalを空白で単語に分割し、リストwordsに代入しているのだ。これも実際に書いて実行してごらん。3行目に『print(words)』と書いてリストwordsを表示して確認してみるといいだろう。

ヒロト
ヒロト

シングルクォーテーションをいちいち書かなくてよくなったのは大きいですね!今度は『file47』に書きます。

ヒロト
ヒロト

出来ました!しっかり、リストに変換されています。

マサト先生
マサト先生

さらに文字列の単語数を数えることができる。file47のプログラムに追加する形でいいので、『print(‘単語数:’ , len(words))』を最後の行に書いて実行してごらん。

ヒロト
ヒロト

できました!確かに単語数である6が表示されました!『len(words)』でリストの要素の個数を表すのですね!

問題

マサト先生
マサト先生

そういうことだ。

では最後に問題を出そう。下のプログラムを読み解いてほしい。

ヒロト
ヒロト

1行目で空のリストwordsを用意しています。2~3行目のfor文では空のリストwordsにappend関数を使ってキーボードから入力した文字を追加しています。for文の回数は10回なので10個の単語が追加されます。6~8行目のfor文は上と同様にキーボードから入力した文字がリストwordsにあるかどうか検索してくれるプログラムになっています。

マサト先生
マサト先生

素晴らしい!結果は自分で書いて確認してみよう!

ヒロト
ヒロト

はい。これは『file48』に書きます。

ヒロト
ヒロト

できました!この方法だと好きな単語を入力していくだけでいいので簡単ですね!

マサト先生
マサト先生

うむ。今回はここまでにしよう。次回は『パスワード生成』についてやろうと思う。では、今日もお疲れさん。

ヒロト
ヒロト

はい、ありがとうございました!

コメント

タイトルとURLをコピーしました