Pythonには空の文字列変数のようなものがあって、そこから実行できるのでしょうか。
if myString == string.empty:
それはともかく、空の文字列の値をチェックする最もエレガントな方法は何でしょうか?空の文字列をチェックするために毎回 ""
をハードコーディングするのはあまり良くないと思っています。
空の文字列は"falsy"、つまり、ブールの文脈では偽とみなされるので、これを実行すればいいのです。
if not myString:
これは、変数が文字列であることがわかっている場合に推奨される方法です。 もし変数が他の型である可能性がある場合は、myString == ""
を使うべきです。 ブール型のコンテキストで偽となるその他の値については、Truth Value Testingのドキュメントを参照してください。
PEP 8](http://www.python.org/dev/peps/pep-0008/)の["Programming Recommendations"]セクション(https://www.python.org/dev/peps/pep-0008/#programming-recommendations)より。
シーケンス(文字列、リスト、タプル)については、空のシーケンスは偽であるという事実を利用する。
ですから、次のように使うべきです。
if not some_string:
または
if some_string:
誤解のないように言っておきますが、シーケンスは空であるか否かに関わらず、ブールコンテキストにおいてFalseまたは
Trueと評価されます。これらは
Falseや
True` とは 同じではありません** 。
最もエレガントな方法は、おそらく、その真偽を単純にチェックすることでしょう。
if not my_string:
しかし、ホワイトスペースを削除したい場合もあるでしょう。
>>> bool("")
False
>>> bool(" ")
True
>>> bool(" ".strip())
False
ただし、この文字列が何らかの検証に合格していて、この方法でテストできる文字列であることが確実にわかっている場合を除き、もう少し明示的に説明したほうがよいでしょう。