Python. Функції які визначають та обробляють початок та закінчення рядка

Функції які визначають та обробляють початок та закінчення рядка


Зміст


1. Функція str.endswith(). Перевірка закінчення рядка заданим суфіксом

Функція endswith() визначає, чи рядок завершується указаним суфіксом. Згідно документації Python загальна форма використання функції наступна:

f_is = s.endswith(suffix[, start[, end]])

де

  • s – рядок, який обробляється;
  • f_is – результат логічного типу. Якщо рядок s завершується заданим суфіксом suffix, то f_is = True. У противному випадку f_is = False;
  • suffix – заданий суфікс або кортеж суфіксів, які перевіряються на наявність у рядку s;
  • start, end – відповідно початок та кінець підрядка, який утворюється з рядка s. Якщо задані необов’язкові параметри start, end то розглядається цей фрагмент рядка.

Приклад.

# Функція str.endswith()

# 1. Виклик з одним заданим суфіксом
s1 = "abcdef"
f1 = s1.endswith('ef') # f1 = True

# задати суфікс
suffix = "cdef"
# пошук у підрядку 'bcd'
f2 = s1.endswith(suffix, 1, 3) # f2 = false

# пошук у підрядку 'cdef'
f3 = s1.endswith(suffix, 2, len(s1)) # f3 = True

# 2. Виклик з кортежем суфіксів
# Перевірка, заданий рядок завершується кортежем суфіксів
arrS = ( 'ab', 'zz', 'w' ) # сформувати кортеж

# деякий рядок
s2 = "abcdej zz"

f_is = s2.endswith(arrS) # f_is = True

 

2. Функція str.startswith(). Перевірка початку рядка заданим префіксом

Функція str.startswith() перевіряє, чи рядок починається заданим префіксом. Загальна форма використання функції наступна:

f = str.startswith(prefix[, start[, end]])

де

  • f – результат логічного типу. Якщо префікс в рядку знайдено, то f = True (функція повертає True). В противному випадку f = False;
  • str – рядок, в якому відбувається пошук заданого префіксу prefix;
  • prefix – заданий префікс;
  • start, end – необов’язкові параметри, що задають діапазон індексів рядка str, який переглядається на наявність префіксу. Фактично розглядається діапазон індексів, що знаходяться в межах [start, end-1].

Приклад.

# Функція str.startswith() - перевірка префіксу рядка

# Випадок 1. Не задано параметрів start, end
s = 'Hello world!'
f = s.startswith('He') # f = True
f = str.startswith(s, 'Hello') # f = True
f = s.startswith('abc') # f = False

# Випадок 2. Задано параметр start
s = 'abcde'
f = s.startswith('bcd', 1) # f = True
f = s.startswith('bcd', 2) # f = False

f = 'jklmn'.startswith('+++', 6) # f = False

# Випадок 3. Задано обидва параметри start, end
s = '0123456789'
f = s.startswith('234', 2, 5) # f = True
f = s.startswith('234', 2, 4) # f = False
f = s.startswith('234', 2, 7) # f = True

f = s.startswith('345', 1, 8) # f = False

# Випадок 4. Пустий рядок, пустий префікс
s = ''
f = str.startswith(s, '', 0, len(s)) # f = True


 

3. Функція str.lstrip(). Повернути копію рядка без заданих перших символів

Функція str.lstrip() повертає копію рядка, в якій видалені задані початкові символи. Згідно документації Python загальна форма використання функції наступна:

s2 = s1.lstrip([chars])

де

  • s1 – рядок-оригінал, в якому буде здійснена спроба видалити початкові символи з набору chars;
  • s2 – рядок-результат з видаленими початковими символами;
  • chars – множина символів, які розглядаються як такі, що потребують видалення. Якщо при перегляді рядка s1 зліва-направо зустрічається символ, який не входить в множину chars, то видалення початкових символів припиняється. Якщо параметр chars не заданий, то за замовчуванням приймається символ пробіл.

Приклад.

# Функція str.lstrip() - повернути рядок без заданих перших символів

# 1. Виклик без задавання множини символів, береться до уваги пробіл
s1 = ' abcdef '
s2 = s1.lstrip() # s2 = 'abcdef ' - видалені перші символи пробіл

s1 = '+ abcdef'
s2 = str.lstrip(s1) # s2 = '+ abcdef' - символ пробіл не видаляється

# 2. Виклик з задаванням множини символів
s1 = 'sdefabcdef'
s2 = s1.lstrip('defs') # s2 = 'abcdef' - видалені символи 'd','e','f','s'

s2 = '+--+-abcdef'.lstrip('-+:;') # s2 = 'abcdef'

 

4. Функція str.rstrip(). Видалення символів з кінця рядка

Функція str.rstrip() повертає копію рядка, в якій видалені задані кінцеві символи. Згідно документації Python загальна форма використання функції наступна:

s2 = s1.rstrip([chars])

де

  • s1 – рядок-оригінал, в якому буде здійснена спроба видалити кінцеві символи з набору chars;
  • s2 – рядок-результат з видаленими кінцевими символами;
  • chars – множина символів, які розглядаються як такі, що потребують видалення. Якщо при перегляді рядка s1 з кінця до початку зустрічається символ, який не входить в множину chars, то видалення кінцевих символів припиняється. Якщо параметр chars не заданий, то за замовчуванням приймається символ пробіл.

Приклад.

# Функція str.rstrip() - повернути рядок без кінцевих заданих символів

# 1. Виклик функції без параметрів
s1 = 'abcdef '
s2 = s1.rstrip() # s2 = 'abcdef ' - видалені кінцеві символи пробіл

s1 = 'abcdef +'
s2 = str.rstrip(s1) # s2 = 'abcdef +' - символ пробіл не видаляється

# 2. Виклик з задаванням множини символів
s1 = 'abcdefdfes'
s2 = s1.rstrip('defs') # s2 = 'abc' - видалені кінцеві символи 'd','e','f','s'

s2 = 'abcdef+--++-'.rstrip('-+:;') # s2 = 'abcdef'

 

5. Функція str.strip(). Отримати рядок з видаленими початковими та останніми символами

Функція str.strip() повертає копію рядка з видаленими початковими та останніми заданими. символами. Згідно документації Python загальна форма використання функції наступна:

s2 = s1.strip([chars])

де

  • s1 – рядок-оригінал, який обробляється;
  • s2 – рядок-копія, що є результатом роботи функції;
  • chars – набір символів, які потрібно видалити. Якщо значення chars відсутнє, то, за замовчуванням видаляються символи пробіл. Параметр chars є множиною, тому тут порядок слідування символів не має значення. Якщо при перегляді з початку або з кінця рядка зустрічаються символи з набору chars, то відбувається їх видалення. Символи видаляються до тих пір, поки не зустрінеться символ, якого немає в наборі chars.

Приклад.

# Функція str.strip() - видаляє задані символи з початку та кінця рядка

# Випадок 1. Параметр chars не задано - видаляються пробіли
s1 = ' abcd jkl '
s2 = str.strip(s1) # s2 = 'abcd jkl'

s1 = ' ' # у рядку всі символи пробіл
s2 = s1.strip() # s2 = '' - пустий рядок

# Випадок 2. Параметр chars задано
s1 = '+=-=+abcd+-='
s2 = s1.strip('+-=') # s2 = 'abcd'
s2 = s1.strip('=') # s2 = '+=-=+abcd+-'
s2 = '..... ,,...This is a string...'.strip(',. ') # s2 = 'This is a string'

 


Зв’язані теми