BugBug

Python строки. Часто используемые методы и функции строк.

Строки в Python можно охарактеризовать как неизменяемые массивы символов. Естественно это не означает, что они имеют абсолютно те же методы что и массивы. Для строк доступны следующие операции доступные и для массивов:

  • Доступ к символу по индексу:
    
    >>> x='string'
    >>> x[2]
    'r'
    >>> x[-1]
    'g'
    
  • Возможно производить срез строки:
    
    >>> x[1:4]
    'tri'
    >>> x[:2]
    'st'
    >>> x[1:]
    'tring'
    >>> x[1::2]
    'tig'
    >>> x[::2]
    'srn'
    >>> x[::-1]
    'gnirts'
    

    Добавление третьего параметра позволяет задать смещение при извлечении среза. При str[x:y:z] символы будут браться с номерами индексов x,x+z,x+2*z и так далее. Это дает возможность легко реверсировать строку задав смещение -1.

  • Для нахождения длинны строки используется метод len() :

    
    >>> len(x)
    6
    

Запомните, что строки являются не изменяемыми, поэтому все методы и функции как результат возвращают новые строки.

Конкатенация и форматирование строк.

Конкатенация это склеивание двух строк. В Python она осуществляется крайне просто с помощью оператора сложения:


>>> x='string'
>>> y='python'
>>> y+' '+x
'python string'

Кроме оператора сложения к строкам можно применить и оператор умножения


>>> x='str'
>>> x*3
'strstrstr'

Строки можно сравнивать. Для этого используются операторы сравнения доступные в Python. Порядок строк характеризуется порядком следования ASCII символов.


>>> x='str'
>>> y='Str'
>>> x==y
False
>>> x>y
True

Форматирование строк в Python осуществляется несколькими способами:

  • При помощи оператора %:
    
    >>> 'Привет, меня  зовут %s'%('Сергей')
    'Привет, меня  зовут %s'%('Сергей')
    >>> 'У %d машин,%d колес'%(2,8)
    ' У 2 машин,8 колес'
    

    Обратите внимание на конструкцию внутри форматируемой строки %d,%s. Это спецификаторы, и их достаточно много. Наиболее используемые:

    • %d, %i десятичное число.
    • %e, %E экспоненциальное представление вещественного числа.
    • %f, %F число с плавающей запятой с десятичной точностью
    • %s строка
    • %c символ
    Остальные можно найти в официальной документации

Еще один способ форматирования это использование метода format():


>>> '{2},{1},{0}'.format('a','b','c')
c,b,a			 		

С выходом Python 3.6 появился еще один способ форматирования строк: использование f-строк. При их применении в строку подставляются значения из текущей области видимости.


>>> name='Сергей'
>>> f'Привет, меня зовут {name}'
'Привет, меня зовут Сергей'

Обратите внимание что данный метод может использоваться в Python начиная с версии 3.6. Он допускает выполнение арифметических операций, возов методов объектов и функций прямо в форматируемой строке


>>> x=5
>>> y=2
>>> f'{x*y}'
'10'
>>> name='сергей'
>>> f'Привет, меня зовут {name.capitalize()}'
'Привет, меня зовут Сергей'

Функции и методы для работы со строками

Python позволяет выполнять множество операций со строками не прибегая к сторонним библиотекам. Часто используемыми являются:

  • find() - выполняет поиск подстроки. Результатом выполнения функции является первое вхождение искомой строки или -1
    
    >>> x='Простое лучше, чем сложное.'	
    >>> x.find('чем')
    15
    >>> x.find('знать')
    -1					
    
    
  • C.join() - в качестве аргумента метода передается список строк. Возвращает строку с элементами списка перечисленными через разделитель 'C'.
    
    >>> x=['Сергей','Максим','Анна']
    >>> ','.join(x)
    'Сергей,Максим,Анна'
    
  • split() - метод выполняющая разбиение строки на список строк по заданному разделителю
    
    >>> x='Сергей,Максим,Анна'
    >>> x.split(',')
    ['Сергей', 'Максим', 'Анна']
    
  • replace() - производит замену в исходной строке. Аргументами предается строка требующая замены и заменяющая строка.
    
    >>> x='Явное лучше, чем неявное.'
    >>> x.replace('лучше','хуже'
    'Явное хуже, чем неявное.
    
  • strip() - метод удаляющий пробельные символы с обоих концов строки. Имеются методы rstrip() и lstrip() удаляющие пробелы соответственно только с конца или только с начала
    
    >>> x='   x    '
    >>> x.strip()
    'x'
    >>> x.rstrip()
    '   x'
    >>> x.lstrip()
    'x    '
    
    
  • upper() - переводит все символы строки в верхний регистр
  • lower() - переводит символы строки в нижний регистр
  • capitalize() - переводит в верхний регистр первый символ строки
    
    >>>x='сергей'
    >>> x.upper()
    'СЕРГЕЙ'
    >>> x='МАКСИМ'
    >>> x.lower()
    'максим'
    >>> x='красивое лучше, чем уродливое.'
    >>> x.capitalize()
    'Красивое лучше, чем уродливое.'
    

Выше перечислены методы наиболее часто применяющиеся на практике. Этот список не является исчерпывающим. Возможно в ходе работы вам потребуется более специфичные методы: проверка строки на содержание цифр или выяснения ее регистра. По ссылке вы найдете исчерпывающий список.

Подводя итог можно сказать что работа со строками в Python является простой и результативной. Обилие методов и подходов для работы с этим форматом данных позволяет решать множество практических задач буквально в одну строку кода.