お役立ち

【Python】if文ってなんだ!使い方と豆知識

  • このエントリーをはてなブックマークに追加

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です
  • このエントリーをはてなブックマークに追加