■
皆さんこんにちは!今日もプログラミング入門書いていきたいと思います!今日は昨日書いたとおりif文についてやっていきます。是非最後までご覧ください。それでは早速やっていきましょう!
3.ifを使った選択
ifは英語でどういうことを指すのか分かりますか?ifはもし~ならばというような意味を持ちます。このif文をプログラムで用いることで、もしこうだったらこうなる、違うならば違うことが起こるというような選択をすることが出来るプログラムを作れるようになります。
(1). # , \
まず、この2つの記号の使い方を説明します。これはif文だからなどという理由はないのですが、知っとくと便利ですので是非覚えてください!
プログラムを打ったときに横にメモ的なものを入れたくなるときありませんか?自分はそのプログラムの説明を横に書くようにしています。しかし普通に書いてしまうと次のようになってしましますよね。
ここで使うのが「#」です。これを使うことでこれ以降の文がプログラムとしてみられず、メモとして認識されます。
int("10" , 2) #2進数の10を10進数に変換する。
エラーを起こすことなくプログラムを実行できるようになりました。
しかし、シャープが文字列の中に含まれている場合は無効になります。たとえば「今は夜だ。」という文を表示させたいとき、
print("今は夜だ。")
というプログラムを打ちますよね。このクォート「””」に挟まれているのが文字列です。よって上の文を次のようにしたときシャープはそのまま表示されます。
print("今は夜だ。#朝まで後10時間ある。")
次はバックスラッシュ「\」について説明します。文が長すぎるのは余りよくないですよね。しかし、改行してしますとプログラムが行われません。
x = 3 +
4 +
5
x
ここで次のようなプログラムにすることでエラーを起こさず計算することが出来ます。
x = 3 +\
4 +\
5
x
しかし日本でバックスラッシュ「 \ 」を打とうとすると「¥」になってしまうので余り使えないと思います。では、どうすればよいか別のやり方を説明します。前後に()をつけるということです。
x = (
3 +
4 +
5)
x
このようにすることでエラーが起こらなくなります。
(2) if , elif , else
ついに今日のメインであるif文をやっていきます。まずは単純なブール値を例に行っていきます。
a = True
if a:
print("正解")
else:
print("不正解")
このプログラムは下のような結果を得ることが出来ます。
「a」というのはブール値だとtrueですよね。ブール値では0以外がtrueとなるためここまでは分かると思います。上のプログラムはもしa=Trueならば「正解」を表示、違うならば「不正解」を表示するというものです。今回のa=Trueは正しいので「正解」と表示されました。では、次のプログラムはなんと表示されるでしょうか?
a = True
b = True
if a:
if b:
print("両方正解")
else:
print("aのみ正解")
else:
if b:
print("bのみ正解")
else:
print("両方不正解")
このプログラムは
・もしa=Trueかつb=Trueのときは「両方正解」を表示
・もしa=Trueでb=Trueではない(b=False)とき「aのみ正解」を表示
・もしa=Trueではなく(a=False)、b=Trueのとき「bのみ正解」を表示
・もしa=Trueではなく(a=False)、b=Trueではない(b=False)とき「両方不正解」を表示
というものです。よって表示は次のようになります。
答えが分かりましたか?
では、分岐が3種類以上分かれているときはどうすればよいでしょうか。
そんなときはifとelseの間にelifを用います。
suuji = 5
if suuji == 1:
print("NO")
elif suuji == 3:
print("NO")
elif suuji == 5:
print("YES")
elif suuji == 7:
print("NO")
else:
print("NO")
このプログラムはsuuji = 5だったらyesと表示して、違う場合はnoと表示するものです。結果は次のようになります。
しっかりとyesと表示されましたね。
ちなみにですが前の講義で「=」は代入を表すと言いましたよね。等しいという意味を持っているのが上で使われている「==」です。他にもあるので下にまとめておきます。
次のプログラムはTrueかFalseのどちらかが帰ってきます。予想してみましょう。
(x = 7と置きます。)
x == 5
x == 7
5 < x
x < 10
それぞれどちらの結果が帰ってくるでしょうか。正解はこちらです。
(3)論理演算子
論理演算子とはand , or , notのことを指します。
y = 20
y > 12 and y<22
このときy>12というのは正しく、y<22というのも正しいですよね。よってこれの結果はTrueが表示されます。
では、y<22をy<17という間違ったものに変えるとどうなるでしょうか。
y = 20
y > 12 and y<17
これは片方が合っていても片方が間違っているためFalseとなります。
論理演算子「and」は両方Trueの場合のみTrueになり、どれか1つでもFalseの場合はFalseと表示されます。
次に論理演算子「or」を見ていきましょう。
y = 20
y > 12 or y < 17
これは先ほどのものをandからorに変更したものです。先ほどはFalseでしたがどうなるでしょうか。
Trueと表示されました!
論理演算子「or」はどちらか片方がTrueならばTrueと表示され、どちらもFalseの場合のみFalseと表示されます。もちろんどちらもTrueの場合はTrueになります。
最後にnotを見ていきましょう。
y = 20
y > 12 and not y < 17
これは先ほどFalseになったもののy < 17の前にnotをつけたものです。どういった結果が出るでしょうか。
なんとTrueと表示されました。これはnotをつけることでy < 17ではない、つまりy >=17というようになったからです。
not y < 17 == y >= 17ということですね。
論理演算子「not」は後ろのものを否定の形に変えることができます。
(4) in
例えばx = aのときこれは子音か母音かを表示させたいとする。これはifとorを用いて作ることができます。
x = 'a'
if x == 'a' or x == 'i' or x == 'u' or x == 'e' or x =='o':
print("xは母音です。")
else:
print("xは子音です。")
これは母音と表示されます。
しかし2行目にこんなにorを使うのは面倒ですよね。そこで用いるのが「in」です。
y = 'aiueo'
x = 'a'
if x in y:
print("xは母音です。")
else:
print("xは子音です。")
「in」を使うとこんなにも簡単に書くことができる。
これでif文の基礎は終わりになります!!最後まで見ていただきありがとうございました!これを応用させていくと楽しいことになるという想像もできたのではないかと思います。次回は文字列について詳しくやっていきます。ぜひお楽しみに!!
(5)練習問題
・xとyに好きな数字を代入してxがyより低いときは「low」、xとyが等しいときは「equal」、xがyより高いときは「high」と表示するプログラムを書こう。
前回の答えです。
最後にプログラミングを始めたいけどパソコンの選び方が分からないという方のために僕がおすすめするノートパソコンを貼っておきますので是非ご購入ください!!
富士通は故障時などの対応が素晴らしく安心ですのでとてもおすすめです!!
|
またアマゾンでご購入の際はアマゾンプライムに入ることで送料が無料となったり様々な特典がありますので入ることをおすすめします!!