2023-02-26
552

Строки в Python

Описание

Строки - неизменяемые объекты. К символу в строке можно обратиться по индексу, прочитать, но не изменить.

Одинарная и двойная кавычки равнозначны.

Кавычки внутри строки можно экранировать, чтобы они не воспринимались как окончание строки
print('hello \'hello\' world')
  • \ экранирование следующего символа
  • \n перенос на следующую строку
  • \t табуляция
  • str_res = len(s) определение длины строки

Преобразование строки

  • str_res = s1 + s2 конкатенация(сложение) строк
  • str_res = s * 3 повторение исходной строки указанное количество раз
  • str_res = s[3] чтение символа по индексу
  • str_res = s.lower() делает все буквы строчными
  • str_res = s.upper() делает все буквы заглавными
  • str_res = s.capitalize() переводит первый символ строки в верхний регистр, остальные в нижний
  • str_res = s.swapcase() переводит символы нижнего регистра в верхний, а верхнего - в нижний
  • str_res = s.title() первую букву каждого слова переводит в верхний регистр, а все остальные в нижний
  • str_res = s.replace('123', '456') замена 123 на 456 в строке s
  • str_res = s.lstrip() удаление пробелов в начале строки
  • str_res = s.rstrip() удаление пробелов в конце строки
  • str_res = s.strip() удаление пробелов в начале и конце строки
  • str_res = s.replace(' ', '') удаление пробелов во всей строке
  • str_res = s.split(',') разбиение строки по разделителю, возвращает список
  • str_res1, str_res2, str_res3 = s.split(',') разбиение строки по разделителю, значения записываются в переменные
  • str_res = s.zfill(6) дополнение нулями в начале до указанного количества символов

Поиск в строке

  • str_res = s.find(substring) поиск подстроки в строке, возвращает индекс первого вхождения или -1
  • str_res = s.index(substring) поиск подстроки в строке, возвращает номер первого вхождения или вызывается исключение ValueError
  • str_res = s.rindex(substring) поиск подстроки в строке, возвращает номер последнего вхождения или вызывается исключение ValueError
  • flag_res = s.endswith(substring) поиск подстроки в конце строки, возвращает true или false
  • flag_res = s.startswith(substring) поиск подстроки в начале строки, возвращает true или false
  • flag_res = substring in s содержится ли подстрока в строке, возвращает true или false

Проверка строки

    Возвращают true или false
  • str_res = s.isdigit() состоит ли строка из цифр
  • str_res = s.isalpha() состоит ли строка из букв
  • str_res = s.isalnum() состоит ли строка из цифр или букв
  • str_res = s.islower() состоит ли строка из символов в нижнем регистре
  • str_res = s.isupper() состоит ли строка из символов в верхнем регистре
  • str_res = s.istitle() начинаются ли слова в строке с заглавной буквы
  • str_res = s.isspace() состоит ли строка из неотображаемых символов (пробел, символ новой строки и т.д.)

Срезы

    s[i1:i2,step] - извлечение среза, где i1 - начало среза, i2 - окончание среза, символ с индексом i2 в срез не входит. По умолчанию, если значение не указано, первый индекс 0, а второй - длина строки. Можно задать шаг, с которым нужно извлекать срез.
    Например, s = "abcdef"
  • str_res = s[3:5] получение символов от 3 до 5 - 'de'
  • str_res = s[2:len(s)] получение символов от 2 до конца строки - 'cdef'
  • str_res = s[2:-2] получение символов без первых двух и без последних двух -- 'cd'
  • str_res = s[:4] получение 4 символов от начала - 'abcd'
  • str_res = s[1:] получение всех символов кроме первого - 'bcdef'
  • str_res = s[::-1] получение строки в обратном порядке - 'fedcba'
  • str_res = s[4:1:-1] получение символов с 4 до 1 по обратном порядке - 'edc'
  • str_res = s[2::2] получение символов начиная со второго с шагом 2 - 'ce'
  • str_res = s[:] получение той же самой строки - 'abcdef'

Подстановка значений в строку

    s1 и s2 - это переменные
  • str_res = "value1 =" + s1 + ", value2 = " + s2 с использованием конкатенации
  • str_res = "value1 = {s1}, value2 = {s2}".format(s1=s1, s2=s2) с использованием format
  • str_res = f"value1 = {s1}, value2 = {s2}" с использованием f-строки (работает только начиная с версии 3.6)