【Python入門】文字列が空白(スペース・タブ・改行)のみかどうかを判定する2つの方法
Pythonでは、文字列が「空」——つまりスペース、タブ、改行などの空白文字のみで構成されているかどうかを簡単にチェックできます。主な方法は以下の2つです。
- 文字列メソッド
isspace()を使う方法 reモジュールの正規表現を使う方法
それぞれの使い方を詳しく見ていきましょう。
方法1:isspace() メソッドを使う
str 型が持つ isspace() メソッドは、文字列が空白文字だけで構成されていて、かつ1文字以上ある場合に True を返します。通常の文字が1つでも含まれていれば False となります。
サンプルコード
print('Hello world'.isspace())
print(' '.isspace())
実行結果
False True
「Hello world」にはアルファベットが含まれているため False、一方でスペースのみの文字列は True と判定されます。
注意: 空文字列('')に対して isspace() を呼び出すと False が返ります。「何もない状態」と「空白文字のみ」を区別したい場合は、この挙動に留意しておきましょう。
方法2:正規表現(re モジュール)を使う
より柔軟な判定を行いたい場合は、標準ライブラリの re モジュールを使った正規表現マッチングが便利です。正規表現のメタキャラクタ \s は任意の空白文字(スペース、タブ、改行など)にマッチします。
パターン "^\s*$" を使えば、「行頭から行末まで空白文字のみ(または空)」という条件で判定できます。
サンプルコード
import re
print(bool(re.match('^\s*$', ' abc')))
print(bool(re.match('^\s*$', ' ')))
print(bool(re.match('^\s*$', '')))
実行結果
False True True
re.match() はマッチオブジェクトまたは None を返すため、bool() で囲むことで真偽値として扱えます。上記の例のように、空白のみの文字列や空文字列が True と判定されているのがわかります。
補足:strip() を使ったシンプルな判定
もう少し簡潔に書きたい場合は、strip() と組み合わせる方法もあります。
text = ' '
if not text.strip():
print('空白のみ(または空)の文字列です')
strip() は文字列両端の空白を取り除くため、結果が空文字列になれば「空白のみだった」と判断できます。この方法なら空文字列もまとめて扱えるため、実務ではよく使われるテクニックです。
まとめ
| 方法 | 特徴 |
|---|---|
isspace() | シンプルで高速。ただし空文字列は False |
正規表現 ^\s*$ | 柔軟な条件指定が可能。空文字列も True にできる |
not text.strip() | 最も簡潔。空白のみ・空文字列の両方を検出 |
用途に応じてこれらの方法を使い分けることで、ユーザー入力のバリデーションやデータクリーニングなどを効率的に行えます。
-
Swiftでテキストフィールド(UITextField)が空かどうかを簡単に確認する方法
Swiftでテキストフィールドが空かどうかを確認する基本Swiftでは、テキストフィールド(UITextField)が空かどうかを判定するのは非常に簡単です。ポイントは2段階のチェックです。まずテキストフィールドに値が存在するか(nilでないか)を確認し、その上で文字列が空文字かどうかを見ます。ここでは、テキストフィールドの変数名を myTextField として説明します。以下のように記述できます。if let text = myTextField.text, !text.isEmpty { // テキストフィールドに文字が入力されている} el
-
Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例
Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実