blog.furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Substring w Pythonie

in

Sprawdza tylko czy podciąg znajduje się w przeszukiwanym tekscie (bez podawania jego pozycji).
Zwraca True lub False.

if "er" in "qwerty":
    print "znaleziono"
else:
    print "nie znaleziono"

find, rfind

Podaje pozycję pierwszego(find) lub ostatniego(rfind) wystąpienia podciągu w przeszukiwanym tekście.
Pozycja jest liczona od 0.
W razie nieznalezienia zwraca wartość mniejszą od zera (-1).

pozycja = "qwerty".find("er")
if pozycja >= 0 :
    print "znalezione na pozycji:", pozycja
else:
    print "nie znaleziono"

index, rindex

Podaje pozycję pierwszego(index) lub ostatniego(rindex) wystąpienia podciągu w przeszukiwanym tekście.
Pozycja jest liczona od 0.
W razie nieznalezienia wywołuje wyjątek ValueError.

try:
    pozycja = "qwerty".index("er")
    print "znalezione na pozycji:", pozycja
except:
    print "nie znaleziono"

startswith, endswith

(startswith = "starts with", endswith = "ends with")
Sprawdza czy podciąg znajduje się na początku(startswith) lub na końcu(endswith) przeszukiwanego tekstu.
Zwraca True lub False.

if "qwerty".startswith("er"):
    print "zaczyna się"
except:
    print "nie zaczyna się"

Można sprawdzać kilka podciągów jednocześnie ale nie daje odpowiedzi, który konkretnie z podciągów spełnia warunek.

if "qwerty".startswith( ("er","we", "qw") ):
    print "zaczyna się"
except:
    print "nie zaczyna się "

partition

Znajduje podciąg w tekscie i zwraca znaleziony podciag oraz to co było przed nim i za num w przeszukiwanym tekscie.

wynik = "qwerty".partition("er")

# wynik = ("qw","er","ty")

wynik = "qwerty".partition("xx")

# wynik = ("qwerty","","")

przed,znalezione,po = "qwerty".partition("er")

# przed = "qw"
# znalezione = "er"
# po = "ty"

if znalezione == "":
    print "nie znaleziono"
else:
    print "znaleziono"
    if przed == "":
        print "znaleziono na początku"
    if po == "":
        print "znaleziono na końcu"
Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury