Pythonで文字列が空白(空文字)か判定する方法
Pythonで文字列が空文字かどうかを判定する方法について解説します。
Pythonで文字列が空文字(''
か""
)であるかどうかを判定するには大きく二つの方法があります。それぞれ、判定するオブジェクトが文字列であるとわかっているかどうかによって使い分けると良いでしょう。
Pythonの文字列で空白(空文字)を判定する方法
一つ目の方法は、Bool
型として判定することです。
Pythonでは、文字列が空白(空文字)の場合は、Bool
型でFalse
と判定されます。逆に、何かしらの文字が入っている場合にはTrue
と判定されます。注意点としては、スペースやタブなど、見た目上は空の文字列もTrue
を返すことです。
こちらの方法は、評価するオブジェクトが文字列であることがわかっている場合に有効な方法です。間違って他の型のオブジェクトを同様に判定すると、思わぬ対象をTrue
、False
と判定してしまいます。
# 空文字かどうかを確認する関数
# 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