検索について
やあ、こんにちは。今日は『検索』についてやっていこう。
はい、よろしくお願いします。
インターネットなどで情報を検索するときは、ある単語を指定して検索している。ここでは文字列の中から単語を検索するプログラムを書いてみよう。
はい、いつもインターネットには検索のお世話になっているので、どういう仕組みなのか知るのが楽しみです!
うむ。まずは次のプログラムを見てほしい。
具体例
上のプラグラムは、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』に書きます。
できました!この方法だと好きな単語を入力していくだけでいいので簡単ですね!
うむ。今回はここまでにしよう。次回は『パスワード生成』についてやろうと思う。では、今日もお疲れさん。
はい、ありがとうございました!
コメント