if文の基本的な使い方
下記のコードはiが3の倍数だったら”Fizz”を表示して、iが5の倍数だったら”Buzz”を表示して、iが15の倍数だったら”FizzBuzz”それ以外は数を表示するコードです。
msg = ""
i = 10
if i % 3 == 0:
msg += "Fizz"
elif i % 5 == 0:
msg += "Buzz"
else:
msg = i
print(msg)
Pythonのif文で特徴的なのはコードブロックをインデントで認識するところです。インデントは半角スペースでもタブでもよいです。
ダメなインデント
インデントを消すと、動かなくなります。
i=10
if i % 3 == 0:
print("Fizz")
File "<stdin>", line 2
print("Fizz")
^
IndentationError: expected an indented block
インデントの数も重要で、同一ブロックでインデントの数が異なるとエラーが発生します。
i = 10
if i % 3 == 0:
print("hoge")
print("Fizz")
File "<stdin>", line 3
print("Fizz")
^
IndentationError: unindent does not match any outer indentation level
論理演算子
Python以外の言語では&(アンドマーク)、|(バーティカルバー)、!(ビックリマーク)を使いますが、これらはPythonではビット演算となるので使えません。かわりにPythonの論理演算子は直感的な英語でand、or、notを利用します。ただし、!は!=のようにノットイコールに使うことはあります。
aとbが等しい(==)
a = 3
b = 4
if a == a:
print("hoge")
if a == b:
print("fuga")
実行結果:
hoge
aとbが等しくない(!=)
a = 3
b = 4
if a != b:
print("hoge")
実行結果:
hoge
以上(<=)、以下(>=)
a = 3
b = 4
if a <= b:
print("hoge")
if a >= b:
print("fuga")
実行結果:
hoge
=<と=>は使えない
a =< b
File "<stdin>", line 1
a =< b
^
SyntaxError: invalid syntax
a => b
File "<stdin>", line 1
a => b
^
SyntaxError: invalid syntax
AかつB (and)
10以下かつ3の倍数だったら”Fizz”と表示
i = 10
if i % 3 == 0 and i <= 10:
print("Fizz")
AまたはB (or)
10以下または3の倍数だったら”Fizz”と表示
i = 10
if i % 3 == 0 or i <= 10:
print("Fizz")
Aではない (not)
3の倍数でない場合”Buzz”と表示
i = 10
if not i % 3 == 0:
print("Fizz")
AはBである (is)
i = 10
if i is 2:
print("hoge")
elif i is 10:
print("fuga")
実行結果:
fuga
リストに関する条件
inでリストに要素が含まれるかを確認
fruits = ["apple","orange","grape"]
if "orange" in fruits:
print("オレンジは入ってます")
if "melon" in fruits:
print("メロンは入ってません")
実行結果:
オレンジは入ってます
メロンは入ってません
リストが空の場合Falseを返す
hoge = []
if hoge:
print("hogeは空ではありません")
else:
print("hogeは空です。")
実行結果:
hogeは空です。
NoneはFalseを返す
if None:
print("hoge")
if not None:
print("fuga")
実行結果:
fuga
型の判定
Pythonで型の判定を行いたい場合はtypeを利用しましょう。
a = 3
if type(a) == int:
print("intです")
if type(a) == float:
print("floatです")
実行結果:
intです
コメント