こんにちは。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 “元の文章”: である。この機能を使うと、文書検索プログラムが作れる。
コメント