2週間でAIを触れる! Python講座 基礎 [if文編]
目標
ある条件の時だけコードを実行できるようになる.
条件によって,実行するコードを変えられるようになる.
if文
ある条件を満たすときだけコードを実行したいときに使う文です.
if 条件:
コード
コード
という風に使います.
条件を満たすときに,実行するコードは,コードの前にインデント(字下げ)を入れます.
:(コロン)の後のブロックには,必ずインデントをいれる,と覚えておいてください.
インデントはスペース4つです.
環境構築編でSublime Text3をいれて,僕と同じように設定した人は,tabキーでスペース4つを入れることができます.
実際に使ってみましょう.
a = 3
if a == 3:
print("a = 3")
これを実行すると,
a = 3
と表示されます.
==は比較演算子の1つで両辺が等しいことを表します.
つまりこのプログラムは,aが3の時に,「a = 3」と表示するプログラムです.
比較演算子は7つあります.
では
a = 5
if a <= 0:
print("a <= 0")
print(a)
とすると,どうなるでしょうか?
まず,2行目のif文の条件は満たしていないので,3行目は実行されません.
しかし4行目はインデントがついていないので,if文の条件にかかわらず実行されます.
つまり,
5
となります.
ちなみに,if文などの後に来る,インデントされたコードの塊のことをコードブロックと呼びます.
では条件を2つ満たすときだけコードを実行したいときにはどうすればいいでしょうか?
if文の中にif文を入れて以下の様に,書くこともできますが,あまりコードがきれいではありません.<pre>if a > 0:
if b > 1:
print("hello")
この場合論理演算子を使います.
論理演算子は3つあります.
// 表 and or not
では,実際に使ってみましょう.<pre>a = 5
b = 7
if a > 0 and b >1:
print("hello")
これを実行すると,
hello
と表示されます.
しかし,
a = 5
b = 1
if a > 0 and b >1:
print("hello")
の様に書き換えると,ifの後ろの条件を片方しか満たしていないので,実行しても何も起こりません.
これである条件の時だけコードを実行できるようになりました.
if-else文
ではある条件を満たさないときに,何か処理をさせたいときには,どうすればいいでしょうか?
このようなときに使うのが,if-else文です.
a = 3
if a < 0:
print("aは負の数")
else:
print("aは正の数")
の用に使います.
これを実行すると,ifの条件は満たしていないので,elseの中のコードが実行されて
aは正の数
と表示されます.
if-elif-else文
では,条件によって処理を変えたいときにはどうすればいいでしょうか?
その時に使うのが,if-elif-else文です.
if-elif-else文は
if 条件1:
コード1
elif 条件2:
コード2
elif 条件3:
コード3
else:
コード4
の様に使います.
これとif文を3つ並べたものは,同じように思われるかもしれません.
では以下の二つのコードを実行してみてください.
コード1
num = 5
if num < 3:
print(1)
elif num < 6:
print(2)
elif num < 8:
print(3)
else:
print(4)
コード2
num = 5
if num < 3:
print(1)
if num < 6:
print(2)
if num < 8:
print(3)
else:
print(4)
コード1の実行結果は
2
コード2の実行結果
2
3
となるはずです.
これはif-elif-else文は条件を満たすまで条件を辿り,条件を満たしたところで,if-elif-elseのかたまりを抜け出す,という仕様になっているからです.
つまりコード1をif文を並べて書く
num = 5
if num < 3:
print(1)
if 3 <= num < 6:
print(2)
if 6 <= num < 8:
print(3)
if num >= 8:
print(4)
の様に複雑になってしまいます.
これで条件分岐もかけるようになったと思います.
ディスカッション
コメント一覧
まだ、コメントがありません