Pythonスキルの習得

【忙しい人のためのPython】if 文をついかいこなそう – isと==の違い、None、オブジェクト、np.nan判定等も併せて解説 –

【忙しい人のためのPython】if 文をついかいこなそう – isと==の違い、None、オブジェクト、np.nan判定等も併せて解説 –

こんにちは、Zero-Cheeseです。

Pythonで、頻繁に使われる「if」関係の操作を、ご紹介します。

  • 「ど忘れしたから、さっさと知りたい」

という方を対象にしています。

本記事は、「すぐに知って、すぐ離脱」できるよう、構成しております。

下記もくじより、知りたい操作を、クリック(タップ)して下さい。                                                                                                                                                   

if文とは

if文は、指定された条件が満たされている場合に、特定のコードを実行するための文です。

条件分岐を行うことで、プログラムの動作を柔軟に制御することができます。

if文の構文

if文の基本構文

if文の、基本構文はこちらです。

if 条件式1:
    処理1
elif 条件式2:
    処理2
else:
    処理3

条件式1がTrueの場合、処理1が実行されます。

条件式1がFalseの場合で、条件式2がTrueの場合、処理2が実行されます。(elifは、何個でも、記載することが可能です。)

条件式1、条件式2が両方Falseの場合、処理3が実行されます。

イメージしやすいよう、具体的なコードを、ご紹介します。

下記コードを実行すると、「奇数です。」と結果表示されます。

number = 7

if number % 2 == 0:
    print("偶数です。")
else:
    print("奇数です。")

if文で、複数の条件をチェックする場合

if、もしくはelif の条件式に、

  • 複数の条件が全て成立したかをチェック → and を使用
  • 複数の条件のどれかが成立したかをチェック → or を使用

コード例:

# 変数 a を宣言済みとする。
if a > 0 and a % 2 == 0:
    print('正の数、かつ偶数です。')
if a % 2 == 0 or a % 3 == 0:
    print('2の倍数、もしくは、3の倍数です。')

if文で、判定条件を反対にしたい場合

if not 条件式:

という書き方をします。

  • 条件式がTrueの場合 → False
  • 条件式がFalseの場合 → True

判定となります。

コード例:

a = False

if not a:
    print("このprintは、実行されます。")

if文の条件式

if文で使用する条件式は、真偽値(TrueまたはFalse)を返す式を、使います。

文字の判定条件

2つの文字列が同じかどうかを判定するには、

  • ==

を使用します。

(一致しない場合の判定には、 「 != 」 を使用)

コード例:

a = 'ABC'
b = 'ABC'
c = 'abc'

# 下記条件は、いずれも成立(True)する
if a == b:
    print('一致')
if a != c:
    print('一致しない')

数字の判定条件

数字どうしを比較するには、下記を使用します。

  • 等しい: ==
  • 等しくない: !=
  • より大きい: >
  • より小さい: <
  • 以上: >=
  • 以下: <=

コード例:

x = 10
y = 20

if x == y:
    print("xとyは等しい")
elif x != y:
    print("xとyは等しくない")
elif x > y:
    print("xはyより大きい")
elif x < y:
    print("xはyより小さい")
elif x >= y:
    print("xはy以上")
elif x <= y:
    print("xはy以下")

「リスト内に特定の要素があるか」の判定

リスト内に、特定の要素が存在するかどうかを判定するには

  • 特定の要素 in リスト

を使用します。

コード例:

fruits = ['apple', 'banana', 'orange', 'grape']

if 'apple' in fruits:
    print("リストにリンゴが含まれています。")
else:
    print("リストにリンゴが含まれていません。")

Noneの判定条件

Pythonでは、変数が値を持っていないことを表現するために、「None」が使われます。

Noneの判定条件は、以下のように書くことができます。

Noneの判定条件は、以下のように書くことができます。

  • 変数 is None

※ Noneで無いことを判定するには、「変数 is not None」を使用します。

コード例:

a = None
b = 'aaa'

# # 下記条件は、いずれも成立(True)
if a is None:
    print('Noneです。')
if b is not None:
    print('Noneでは、ありません。')

オブジェクトの判定条件

Pythonには、オブジェクト型を判定する関数が用意されています。

オブジェクトの型を判定するには、isinstance()関数を使用します。

  • isinstance(変数, 型)

という使い方をします。

戻り値は、True or Falseです。

コード例; 実行すると、「Xは文字列です。」と表示されます。

x = "Hello, Python!"

if isinstance(x, str):
    print("xは文字列です。")
elif isinstance(x, int):
    print("xは整数です。")
elif isinstance(x, float):
    print("xは浮動小数点数です。")
else:
    print("xは他の型です。")

np.nan判定条件

NumPyライブラリでは、NaN(Not a Number)という特殊な値が利用されます。

NaNは、数値演算で未定義または表現不可能な結果が生じた場合に使用されます。

NumPyのisnan()関数を使って、値がNaNかどうかを判定できます。

コード例:

import numpy as np

x = np.nan

if np.isnan(x):
    print("xはNaNです。")
else:
    print("xはNaNではありません。")

bool型以外の場合、どのように判定されるか

Pythonの条件式では、真偽値(TrueまたはFalse)だけでなく、他のデータ型も条件として利用できます。

条件式において、

  • 値が「真とみなされる」(真と評価される)か
  • 「偽とみなされる」(偽と評価される)かによって、

if文の挙動が変わります。

値が「真とみなされる」代表例;

  • 数値で0以外の値(例: 1, -1, 3.14)
  • 非空の文字列(例: “hello”, “True”)
  • 非空のリスト(例: [1, 2, 3])
  • 非空のタプル(例: (1, 2, 3))
  • 非空の辞書(例: {“key”: “value”})
  • 非空の集合(例: {1, 2, 3})

値が「偽とみなされる」代表例:

  • 数値で0の値(例: 0, 0.0)
  • 空の文字列(例: “”)
  • 空のリスト(例: [])
  • 空のタプル(例: ())
  • 空の辞書(例: {})
  • 空の集合(例: set())
  • None

コード例: 実行すると、「sは偽と評価されます。」と表示されます。

s = ""

if s:
    print("sは真と評価されます。")
else:
    print("sは偽と評価されます。")