今日から本格的なプログラミングの学習になります。
まず、最初にif文を学習しましょう。
if文は、決められた条件によって処理を振り分けたい時に使います。
ifに続けて判断すべき条件を記述し、その後にコロン(:)を記述します。
条件が成立するか否かによってプログラムの流れをコントロールします。
言葉で説明するより実際にコードを見た方が分かりやすいので、さっそくif文を使ってみましょう。
Contents
if文を使ってみよう。
まず、簡単なif文を使ってみましょう。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
year = 2021
if year == 2021:
print ("今年は2021年です。")
if __name__ == '__main__':
main()
これを実行すると、「今年は2021年です。」と出力されます。
コードを見れば簡単に理解できますよね。
変数yearには2021が入っています。
if文で変数yearと2021という数値が等しいかどうかを判定しています。
判定する時には==とイコールを2つ続けて書きます。
今回は、変数yearの中に入っている数値と2021が等しいので、if文の中のブロックが実行されます。
else文を使う
if文では、条件が成り立つ時だけ、中のブロックが実行されます。
else文を使うと、条件が成り立たない時の処理を記述することができます。
先ほどのコードを少し変えてみます。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
year = 2020
if year == 2021:
print ("今年は2021年です。")
else:
print ("今年は2021年ではありません。")
if __name__ == '__main__':
main()
これを実行すると、「今年は2021年ではありません。」と出力されます。
もうお分かりですよね?
ifの後に記述した条件が成立する場合には、if文の中のブロックが実行されます。
ifの後に記述した条件が成立しない場合で、else文がある場合にはelse文の中のブロックが実行されます。
elif文を使った条件分岐
では、さらに複雑に条件を設定してみましょう。
最初に判定した条件が成り立たない時、さらに別の条件を判定したことがあります。
その時には、elif文を使います。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
year = 2020
if year == 2021:
print ("変数yearは2021です。")
elif year == 2020:
print ("変数yearは2020です。")
else:
print ("変数yearは2021と2020以外です。")
if __name__ == '__main__':
main()
これを実行すると「変数yearは2020です。」と出力されます。
簡単ですよね。
変数yearには2020が入っていますので、最初のif文は成立しません。
次に変数yearには2020が入っていますので、elif文の条件が成立します。
したがって、elif文の中のブロックが実行されます。
elif文は何個も続けて書くことができますので、いくらでも複雑な条件式を作ることができます。
さきほどのコードを自分でいろいろと変えてみて、実験してみて下さい。
比較演算子
今までのコードで、条件の成否を判断する時に使ってきた==のような演算子は比較演算子と呼ばれています。
比較演算子は==だけではなく、たくさんの種類があります。
演算子 | 説明 |
x==y | xとyが等しい場合にTrueとなります。 |
x!=y | xとyが等しくない場合にTrueとなります。 |
x>y x<y |
xとyの大きさを比較します。中学で習う不等式と同じです。 |
x>=y x<=y |
xとyが等しい場合を含んだ大きさを比較します。 |
x in y | xという要素がyというシーケンス(リスト等)に含まれる場合にTrueとなります。 |
not | TrueとFalseを逆にします。 |
これだけでは、分かりにくいと思いますので、実際に使ってみましょう。
x==yはもう既に使っているので説明は入りませんよね。
x!=y
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
year = 2021
if year != 2020:
print ("変数yearは2020ではありません。")
if __name__ == '__main__':
main()
少しややこしいですが、!=は条件式が成立しない時にTrueとなります。
変数yearには2021が入っていますので、2020と等しくないのでTrueとなりif文の中のブロックが実行されます。
x>y x<y
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
num = 3
if num < 4:
print ("変数numは4より小さいです。")
if num > 0:
print ("変数numは0より大きいです。")
if __name__ == '__main__':
main()
どちらの条件式もTrueとなるので、if文の中が実行されます。
x>=y x<=y
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
num = 3
if num >= 2:
print ("変数numは2以上です。")
if num <= 3:
print ("変数numは3以下です。")
if __name__ == '__main__':
main()
その数字も含むという意味なので、日本語で言うと、「以上」と「以下」です。
これを実行するとどちらも条件を満たしますので、Trueとなりif文の中が実行されます。
x in y
リストなどの要素に指定した値が入っているかどうかを判定します。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
nums = [1, 2, 3, 4, 5]
if 3 in nums:
print ("リストnumsには、3が入っています。")
if __name__ == '__main__':
main()
リストnumsには3という要素が入っているのでTrueとなり、if文の中が実行されます。
not
TrueとFalseを逆転させて判定します。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
nums = [1, 2, 3, 4, 5]
if not 6 in nums:
print ("リストnumsには、6が入っていません。")
if __name__ == '__main__':
main()
リストnumsには6が入っていませんので、Trueとなり、if文の中が実行されます。
複雑な論理演算
もっと複雑な条件もPythonでは簡単に作ることができます。
例えば、18歳以上25歳未満というように複数の条件を使って、処理を振り分けたい場合があるでしょう。
そのような場合には、条件をandやorでつなぐことで簡単に実現できます。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
age = 20
if age >= 18 and age < 35:
print ("年齢は18歳以上35歳未満です。")
if __name__ == '__main__':
main()
コードを見ればすぐに意味が分かると思います。
簡単ですよね。
組み込み型の比較
Pythonでは==を使って、組み込み型を比較することもできます。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
s1 = "This is a pen."
s2 = "this is a pen."
if s1 == s2:
print ("True!")
else:
print ("False!")
l1 = [1, 2, 3, 4, 5]
l2 = [1, 2, 3, 4, 5]
if l1 == l2:
print ("True!")
else:
print ("False!")
if __name__ == '__main__':
main()
組み込み型同士を比較する時は、中身が全く同じ場合にはTrue、少しでも違えばFalseとなります。
上のコードでは、1つ目はFalse、2つ目はTrueとなります。
1つ目は大文字と小文字が違いますので、Falseとなります。
まとめ
if文を使えるようになると、自分のやりたい事の大部分ができるようになります。
難しそうに思われがちですが、そんなに難しくないですよね。
Webプログラミングでも、ユーザーが入力した情報をif文で判定して、処理を振り分けるということがよくあります。
例えば、ジャンケンゲームなどでも使います。
グー、チョキ、パーの組み合わせをif、elif、elseなどで判定して勝ち負けの処理を振り分ければジャンケンゲームが作れます。
Webでユーザーからの入力を受け付けて動かすのは、また別の知識が必要になりますので、今回はあえて触れません。
まずは、今回紹介したコードを自分で色々と改造して、どのような動きになるかを実験してみてください。