in演算子を使えば、Pythonで検索プログラムがカンタンに作れる

プログラミングの基礎

こんにちは。IT/経済ジャーナリストで投資家の渡辺です。

if文を使えば、数値が同じ、同じでない、大小、以上以下を判断して、プログラムの流れを変えられることは理解できたでしょうか。

<過去記事>

ちょっとフクザツな条件もif文とand, orを使えば1行ですぱっとチェックできる

実はそれ以外にも、if文中で使える便利な式があるので、それでちょっと面白いプログラムを作ってみます。

if文では条件式が「真」であると実行される

if文の仕組みをもう少し説明しますね。

if文の中にある等式や不等式が当てはまると、True(真)を返します。

大昔に算数でやった「命題」を覚えていますか?

300円の品物と500円の品物はどちらが高いか。

これは誰が考えても、数字があるので、500円の方が高いと分かります。

ですから、「500円の方が高い」と書けば、その通りなんで、True(真)になります。

逆に「500円の方が安い」といえば間違いなので、False(偽)になります。

これは命題です。

逆に、富士山と松島とどちらの景色が美しいか。

これは客観的に判断できる手段がないので、命題ではありません

コンピュータプログラムで扱えるのは、命題として判断ができるものだけです。

 

検索したい語が含まれているか調べる

等しい、大小など、何だか算数でやったような記号以外にも、if文の面白い使い方があります。

1つ面白いのは、”in” という演算子です。

これは「元の文章」の中に「検索したい語句(文字列)」が含まれていればTrueとして、その式が実行されています。

if “検索したい語” in “元の文章”: という使い方をします。

たとえば、こんな感じです。

if “love” in “I love you after tomorrow”:
print(“この文章には愛が含まれています”)

この場合は “love” という語句が後者(元の文章)に含まれているので、True(真)となり、このif文の内容は実行されます

変数を使うこともできます。

# coding: utf-8
x = “love”

y = “I love you after tomorrow”

if x in y:
    print(x, “はこの文章に含まれています”)
else
    print(x, “はこの文章に含まれていません”)

実際にPyCharmに上のコードを打ち込んで、いつもと同じく「Run ‘study00’」で試してみてください。

“love” は含まれているので、以下のようになったでしょうか。

また変数xの内容を関係ない文字にした場合には、このif文の条件に合致しないので、if文の後ろのprint()文が実行されないことも、試してみるといいです。

試しに x を “like” にしてみたら、、、

 

この機能を使えば、1)長い文書ファイルを1行ずつ読み込んで、2)検索語が含まれているか調べて、3)含まれているときだけ、元の文章を出力する、というようにすれば、カンタンに文書検索プログラムを作ることができます(ぜひもう少し先でやってみます)。

 

<今日の要約ノート>

if文では、等号や不等号といった数字を比較する記号だけでなく、長い文章に検索語が含まれているかを調べる、といった使い方もできる。書き方は、if “検索したい語” in “元の文章”: である。この機能を使うと、文書検索プログラムが作れる。

コメント

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