Kaip apkarpyti eilutėje esančius baltuosius ženklus?

Kaip "Python" programoje iš eilutės pašalinti pradinius ir galinius baltuosius ženklus?

Pavyzdžiui:

" Hello " --> "Hello"
" Hello"  --> "Hello"
"Hello "  --> "Hello"
"Bob has a cat" --> "Bob has a cat"
Sprendimas

Tik vienas tarpas ar visi iš eilės einantys tarpai? Jei antrasis, tuomet eilutėse jau yra .strip() metodas:

>>> ' Hello '.strip()
'Hello'
>>> ' Hello'.strip()
'Hello'
>>> 'Bob has a cat'.strip()
'Bob has a cat'
>>> '   Hello   '.strip()  # ALL consecutive spaces at both ends removed
'Hello'

Tačiau jei reikia pašalinti tik vieną tarpą, tai galima padaryti naudojant:

def strip_one_space(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s

>>> strip_one_space("   Hello ")
'  Hello'

Be to, atkreipkite dėmesį, kad str.strip() pašalina ir kitus baltuosius ženklus (pvz., skirtukus ir naujas eilutes). Jei norite pašalinti tik tarpus, galite nurodyti šalinamą simbolį kaip strip argumentą, t. y:

>>> "  Hello\n".strip(" ")
'Hello\n'
Komentarai (14)

Tai pašalins visus pradinius ir galinius baltuosius ženklus iš myString:

myString.strip()
Komentarai (2)

Norite naudoti funkciją strip():

myphrases = [ " Hello ", " Hello", "Hello ", "Bob has a cat" ]

for phrase in myphrases:
    print phrase.strip()
Komentarai (0)