Kaip patikrinti, ar eilutė yra tuščia?

Ar "Python" turi kažką panašaus į tuščios eilutės kintamąjį, kuriame galite atlikti:

if myString == string.empty:

Nepaisant to, koks yra elegantiškiausias būdas tikrinti, ar nėra tuščios eilutės reikšmių? Man atrodo, kad kietas kodavimas "" kiekvieną kartą tikrinant tuščią eilutę nėra toks geras.

Sprendimas

Tuščios eilutės yra "falsy", o tai reiškia, kad jos laikomos klaidingomis loginiame kontekste, todėl galite tiesiog tai padaryti:

if not myString:

Šis būdas yra priimtiniausias, jei žinote, kad jūsų kintamasis yra eilutė. Jei jūsų kintamasis gali būti ir kito tipo, tuomet turėtumėte naudoti myString == "". Apie kitas reikšmes, kurios yra klaidingos loginiame kontekste, skaitykite Tiesos reikšmių testavimas dokumentacijoje.

Komentarai (13)

PEP 8, "Programavimo rekomendacijos":

sekoms (eilutėms, sąrašams, tuple) naudokite tai, kad tuščios sekos yra klaidingos.

Taigi turėtumėte naudoti:

if not some_string:

arba:

if some_string:

Norint paaiškinti, loginiame kontekste sekos vertinamos į False arba True, jei jos yra tuščios arba ne. Jos nėra lygios False arba True.

Komentarai (2)

Elegantiškiausias būdas tikriausiai būtų paprasčiausiai patikrinti, ar tai tiesa, ar falsy, pvz.:

if not my_string:

Tačiau galbūt norėsite pašalinti baltąjį tarpą, nes:

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

Tačiau tikriausiai turėtumėte būti šiek tiek aiškesni, nebent tikrai žinote, kad ši eilutė praėjo kokį nors patvirtinimą ir yra eilutė, kurią galima patikrinti tokiu būdu.

Komentarai (0)