[Python] 真偽判定を用いた文字入力の確認方法

Python 組込み型

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の真偽値判定を用いて、文字列が入力されたかを確認する方法についてまとめました。

Learn more...

書籍でもう少し詳しく学びたい場合はこちらもどうぞ。筆者もかなり参考にさせてもらっています!

シェアする
ひびきをフォローする
Hbk project