Kuinka tarkistaa, onko merkkijono tyhjä Pythonissa


Paras vastaus

Tässä on toiminto, jolla tarkistetaan, onko merkkijono tyhjä:

def is\_empty(string):

return not string.strip()

Tyhjät sekvenssit ovat virheellisiä ja arvioivat arvon False loogisessa kontekstissa. Tämän avulla voit tarkistaa, onko merkkijono tyhjä vai ei. Poista ensin välilyönti niin, että jos merkkijono sisältää vain välilyönnin, ne poistetaan ja merkkijono on tyhjä. Voit poistaa strip () -menetelmän, jos et halua, että merkkijonot, joissa on vain tyhjää tilaa, katsotaan tyhjiksi.

Esimerkki käytöstä:

print(is\_empty("")) # Empty string.

print(is\_empty(" ")) # String with only a space char.

print(is\_empty("Hello!")) # String with actual characters.

Tulos:

Tosi

Tosi

Väärä

Huomaa: Ole selkeä ja käytä boolia () funktio, jos haluat siirtää funktiolle myös muita kuin merkkijonoja.

Vastaa

Oletan, että puhut luetteloista (Pythonissa on taulukoita , mutta ne eroavat hyvin luetteloista).

Kolme tapaa:

1 Testaa totuus

Jos tiedät, että kohde on luettelo, teet:

if not my\_list:

print(‘List is empty’)

Tyhjät säilöt (luettelot, sarjat, joukot, diktatit) arvioidaan vääriksi

2 Testaa em pty-luettelo

if my\_list == []:

print(‘List is empty’)

3 Testaa pituus

if len(my\_list) == 0:

print(‘List is empty’)

Kolmesta vaihtoehdosta ensimmäistä pidetään puhtaimpana

Lisätietoja:

Jos testaat luetteloasi ennen kuin yrität käyttää sitä, paras tapa tehdä se on olla vaivautumatta ja yksinkertaisesti käyttää luetteloa ja havaita virheet:

try:

customer = customer\_list[customer\_number]

except IndexError:

print(‘List is empty or {customer\_number} doesn’t exist’)

Tällaisen virheen havaitsemista pidetään parempana kuin tyhjyyden nimenomaista testaamista. Se on yksi EAFP-nimisistä Python-periaatteista: Anteeksiantoa on helpompi pyytää kuin lupaa.

Huomautuksia numpy-matriiseista.

Numpy ei välttämättä noudata edellä mainittuja mekanismeja – esimerkiksi menetelmä 1 tuottaa virheen, ja yllä olevan menetelmän 3 tulisi olla esimerkiksi the\_array.size == 0.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *