Pythonの真偽判定をif文で用いると、文字入力があったかどうかを判定することができます。本記事ではその方法についてまとめます。入力フォームの空入力に対する処理のときに役に立つと思います。備忘録を兼ねてのメモです。
# 2019/2/8 記事更新
確認した環境
OS: Ubuntu16.04LTS
Python3.7.1
文字入力があったかどうかを確認する
真偽判定を用いて入力があったかどうかを判定するコード例を以下に示します。
空のシーケンス(文字型やリスト、タプル等)およびコレクションは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 some strings:
Not entered
但し、これは入力があったかどうかのみを判定しているので、スペース等の空白文字の場合は検出できません。空白文字だけの入力を検出するには、例えばstrip()を使って空白文字を削除する処理(例えば、★部を以下のように)を追加すれば可能です。
if s.strip(): ★strip()で空白文字を削除
<関連記事>strip()を使った空白文字の削除方法
真偽値判定について
- どのようなオブジェクトでも真理値(True/False)として判定できる
- オブジェクトはデフォルトでTrue
- あるクラスが以下のどちらかを満たす場合は、Falseと判定される
- bool() メソッドを定義していて、それが False を返す場合
- len() メソッドを定義していて、それが 0 を返す場合
- 主な組み込みオブジェクトについてはFalseと判定されるものは下表
詳細は公式リファレンスを参照ください。
Falseと判定される条件 | 例 |
---|---|
Falseと定義されている定数 | None、False |
数値型におけるゼロ | 0、0.0、0j、Decimal(0)、Fraction(0, 1) |
空のシーケンスまたはコレクション | ”、()、[]、{}、set()、range(0) |
まとめ
Pythonの真偽値判定を用いて、文字列が入力されたかを確認する方法についてまとめました。