Miten tarkistaa, onko merkkijono tyhjä?

Onko Pythonissa jotain sellaista kuin tyhjä merkkijonomuuttuja, jossa voit tehdä:

if myString == string.empty:

Siitä huolimatta, mikä'on tyylikkäin tapa tarkistaa tyhjän merkkijonon arvot? Minusta kovaa koodaamista "" joka kerta tyhjän merkkijonon tarkistamiseksi ei ole yhtä hyvä.

Ratkaisu

Tyhjät merkkijonot ovat "falsy", mikä tarkoittaa, että niitä pidetään väärinä Boolen yhteydessä, joten voit tehdä näin:

if not myString:

Tämä on suositeltavin tapa, jos tiedät, että muuttujasi on merkkijono. Jos muuttujasi voi olla myös jotain muuta tyyppiä, käytä myString == "". Katso dokumentaatiota Totuusarvon testaus muista arvoista, jotka ovat vääriä Boolen yhteyksissä.

Kommentit (13)

PEP 8, kohdassa "Ohjelmointisuositukset":

Käytä sarjoissa (merkkijonot, luettelot, tuplat) sitä, että tyhjät sarjat ovat vääriä.

Sinun pitäisi siis käyttää:

if not some_string:

tai:

if some_string:

Selvennykseksi, sekvenssit arvostellaan False tai True Boolean-kontekstissa, jos ne ovat tyhjiä tai ei. Ne eivät ole ei yhtä suuria kuin False tai True.

Kommentit (2)

Tyylikkäin tapa olisi luultavasti yksinkertaisesti tarkistaa, onko se totta vai virheellinen, esim:

if not my_string:

Saatat kuitenkin haluta poistaa valkoisen välilyönnin, koska:

 >>> bool("")
 False
 >>> bool("   ")
 True
 >>> bool("   ".strip())
 False

Sinun pitäisi kuitenkin luultavasti olla tässä hieman selvempi, ellet tiedä varmasti, että tämä merkkijono on läpäissyt jonkinlaisen validoinnin ja on merkkijono, joka voidaan testata tällä tavalla.

Kommentit (0)