本記事では、文字入力があったかどうか(空かどうか)をPythonの真偽判定を用いて確認する方法について紹介します。
入力フォームの空入力に対する処理のときなどに役に立つと思います。
入力が空かどうかを確認する
空のシーケンス(文字型やリスト、タプル等)およびコレクションはPythonの真理値判定 ではFalseとなり、if や whileの条件として使うことができます。
具体的なコード例を以下に示します。
def check_str(s):
if s: ★ここで判定(空だったらFalse)
print(s)
else:
print('Not entered')
s = input('Enter some strings: ')
check_str(s)
実行結果
>>> Enter some strings: test
test
# 何も入力しないでEnter
>>> Enter some strings:
Not entered
但し、これは入力があったかどうかのみを判定しており、スペース等の空白文字が入力された場合はTrueと判定されてしまいます。
空白文字だけの場合も「空」と判定するには、例えばstrip()を使って空白文字を削除する処理(例えば、★部を以下のように)を追加すれば可能です。
if s.strip(): ★strip()で空白文字を削除
<関連記事> strip()を使った空白文字の削除方法
【Python】 特定の文字列や空白文字を削除する (strip, rstrip, lstrip、replace)
テキスト解析の前処理など、文字列の先頭と末尾の空白文字(スペース)や末尾の改行(\n)を削除したい場合がある。このような時は、文字列のメソッドであるstr.strip()、str.lstrip()、str.rstrip()が便利。また、str.replace()を使えば特定の文字列を全て削除することも出来る。
<関連記事> オブジェクトの真理判定(True/False)の方法
【Python】ブール値(True、False)の確認・判定(真理判定、bool関数)
Pythonでは真理値(真偽値)をブール値False、Trueで表します。また、どのオブジェクトもTrue/Falseとして判定され、組込み関数bool()で値をブール値に変換できます。
環境
- OS: Ubuntu20.04LTS
- Python3.9.7
まとめ
オブジェクトは(デフォルトでは)Trueなので、文字入力が空かどうかif文を使って判定可能