Pythonで文字列が空白(空文字)か判定する方法

Pythonで文字列が空文字かどうかを判定する方法について解説します。

Pythonで文字列が空白(空文字)か判定する方法

Pythonで文字列が空文字(''"")であるかどうかを判定するには大きく二つの方法があります。それぞれ、判定するオブジェクトが文字列であるとわかっているかどうかによって使い分けると良いでしょう。

Pythonの文字列で空白(空文字)を判定する方法

一つ目の方法は、Bool型として判定することです。

Pythonでは、文字列が空白(空文字)の場合は、Bool型でFalseと判定されます。逆に、何かしらの文字が入っている場合にはTrueと判定されます。注意点としては、スペースやタブなど、見た目上は空の文字列もTrueを返すことです。

こちらの方法は、評価するオブジェクトが文字列であることがわかっている場合に有効な方法です。間違って他の型のオブジェクトを同様に判定すると、思わぬ対象をTrueFalseと判定してしまいます。

# 空文字かどうかを確認する関数
# notを使うことで、str型をbool型として判定する
def is_empty_string(string):
    return not string

empty_string = ""
sample_string = "ABC"
space_string = " "

# 文字を含んだり、スペースが入っていると空文字ではない
print(is_empty_string(empty_string)) # True
print(is_empty_string(sample_string)) # False
print(is_empty_string(space_string)) # False

二つ目の方法は、文字列を直接、空文字と比較する方法です。

こちらの方法は、評価するオブジェクトが文字列以外にもなり得る場合に有効です。オブジェクトがそもそも文字列ではない場合にも、空文字自体と比較した場合にはFalseになるからです。

# 空文字と直接比較する
empty_string = ""
sample_string = "ABC"
space_string = " "

print(empty_string == "") # True
print(sample_string == "") # False
print(space_string == "") # False


# 文字列以外との比較でも、当然Falseになる
print(10 == "") # False
print(False == "") # False
print(None == "") # False