Строковые типы и методы обработки текста

Раздел: Основы Python -> Строки

Текстовые данные и базовые методы строк

В Python строки входят в группу последовательностей. Текстовые данные хранятся в типе str. Двоичные данные представлены типами bytes и bytearray. Объекты str и bytes неизменяемы, а bytearray допускает изменение элементов.

Основной способ обработки строк заключается в использовании методов типа str. Методы создают новую строку и не меняют исходную.

city = 'Москва'
upper_city = city.upper()
without_spaces = '  Тверь  '.strip()
print(upper_city)
print(without_spaces)
print(city)

вывести номер строки python (вывод номера строки в python)

МОСКВА
Тверь
Москва

вывести первый символ строки python (вывести первый символ строки в python)

Метод upper приводит буквы к верхнему регистру. Метод strip убирает пробелы по краям. Исходная переменная остаётся без изменений. Эти операции применимы при сравнении пользовательского ввода с эталонными значениями.

Как соединить много строк без многократной конкатенации?

Метод join собирает последовательность строк в одну строку. Разделитель указывается в строке, к которой вызывается метод.
words = ['Python', 'операции', 'строки']
result = ', '.join(words)
print(result)

Python заменить число (замена числа в python (например, в строке))

Python, операции, строки

Python часть текста (извлечение подстроки из строки в python)

Метод join применяют при построении CSV, написании сообщений и генерации URL. В цикле складывать строки оператором + не рекомендуется, так как каждая операция создаёт новый объект.

Как вставить значения в строку с форматированием?

f-строка позволяет разместить выражения внутри фигурных скобок. Перед кавычкой указывается буква f.
name = 'Ирина'
age = 28
message = f'Имя: {name}, возраст: {age}'
print(message)
print(f'Через пять лет: {age + 5}')

Python последнее слово в строке (извлечение последнего слова из строки в python)

Имя: Ирина, возраст: 28
Через пять лет: 33

индекс элемента строки python (получение индекса символа или подстроки в строке python)

Такой способ читается легко и поддерживает вызовы методов внутри скобок, например f'{name.upper()}'. Метод format работает похоже: '{} {}'.format(name, age). f-строки уместны при генерации отчётов, логов и запросов.

Как извлечь фрагмент строки?

Срез строки создаётся через квадратные скобки с началом, концом и шагом. Последний индекс не включается.
text = 'Информатика'
print(text[0:5])
print(text[5:])
print(text[:4])
print(text[::2])
print(text[::-1])

Print split python (использование split с print в python)

Инфор
матика
Инфо
Ифраиа
акитамрофнИ

Python новая строка (использование символа новой строки в python)

Срезы применяются при анализе текстов, работе с логами и данными из API.

Как заменить символы или подстроки?

Метод replace заменяет все или ограниченное число вхождений.
text = 'один, два, один'
print(text.replace('один', 'раз'))
print(text.replace('один', 'раз', 1))

Python количество пробелов (количество пробелов в строке python)

раз, два, раз
раз, два, один

число цифр python (количество цифр числа в python)

Третий аргумент задаёт количество замен. Метод используют для очистки текста, нормализации чисел и замены переносов строк.

Как найти подстроку и посчитать число вхождений?

Метод find возвращает индекс первого вхождения или -1. Метод count считает непересекающиеся вхождения.
text = 'Python и Python'
print(text.find('Python'))
print(text.find('java'))
print(text.count('Python'))

Python string index (метод str.index в python)

0
-1
2

метод replace python (метод replace в python)

С помощью find можно проверять наличие подстроки перед извлечением среза. count применяется для статистики слов в тексте.

Как перевести текст в байтовое представление и обратно?

Для передачи по сети и записи в файл строки кодируются в байты. Метод encode использует кодировку, метод decode восстанавливает строку.
text = 'Привет'
data = text.encode('utf-8')
print(data)
print(type(data))
back = data.decode('utf-8')
print(back)

Strip строки python (метод strip для строк в python)

b'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'

Привет

символ пустой строки python (символ пустой строки в python)

Результат кодирования имеет тип bytes. Декодирование обратно возвращает исходную строку. Этот вариант важен для сетевых протоколов и двоичных форматов.

Как создать изменяемую байтовую последовательность?

Тип bytearray позволяет изменять отдельные байты после создания.
data = bytearray(b'abc')
print(data)
data[0] = 122
print(data)
data.append(100)
print(data)

строки python определение (определение строк в python)

bytearray(b'abc')
bytearray(b'zbc')
bytearray(b'zbcd')

перенос python (перенос строки в python)

Поэлементная замена и добавление байтов нужны при работе с COM-портами, бинарными протоколами и шифрованием.

Несоответствие типов вызывает частые ошибки.

print('Число: ' + 10)

сколько чисел в строке python (подсчёт количества чисел в строке в python)

TypeError: can only concatenate str (not 'int') to str

Python найти строку (поиск подстроки в строке python)

Для исправления число переводят в строку функцией str или применяют f-строку.

number = 10
print('Число: ' + str(number))
print(f'Число: {number}')

позиция символа в строке python (поиск позиции символа в строке python)

Число: 10
Число: 10

буква каждого слова python (получение первой буквы каждого слова в python)

Ещё одна распространённая ошибка связана с неверной кодировкой при декодировании байтов.

data = b'\xff\xfe'
print(data.decode('utf-8'))

последняя буква слова python (получение последней буквы слова в python)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff

сделать букву заглавной python (преобразование буквы в заглавную в python)

Выбор кодировки должен соответствовать источнику данных. Для многих файлов подходят параметры 'utf-8', 'cp1251' или 'latin-1'.

Ошибка IndexError возникает, когда берут символ по индексу, равному длине строки.

text = 'Python'
print(text[6])

Python пробелы (пробелы в python)

IndexError: string index out of range

Последний допустимый индекс равен len(text) без единицы. Проверка длины перед обращением к элементу исключает эту ошибку.

- Python split string (разделение строки в python)
- Split слова python (разделение строки на слова с помощью split в python)
- символ пробел python (символ пробела в python)

Дополнительные операции со строками и байтами

В этом разделе представлены дополнительные операции со строками, байтами и форматированием.

Пример
text = ('Часть левой строки '
        'и продолжение')
print(text)
Часть левой строки и продолжение

Соседние строковые литералы в круглых скобках объединяются автоматически. Такой приём используется для записи длинных SQL-запросов и текстов.

Пример
word = 'ab'
print(word * 4)
abababab

Умножение строки на число повторяет её заданное количество раз. Операция полезна для создания разделителей и плейсхолдеров.

Пример
full = 'Код: 12345'
before, marker, after = full.partition(':')
print(before)
print(marker)
print(after)
Код
:
 12345

Метод partition делит строку по первому вхождению разделителя и возвращает кортеж из трёх элементов.

Пример
cyrillic = 'ёлка'
trans = str.maketrans({'ё': 'е', 'й': 'и'})
normalized = cyrillic.translate(trans)
print(normalized)
елка

Метод translate вместе с maketrans заменяет символы по словарю. Это удобно для нормализации написания.

Пример
for line in 'один\nдва\nтри'.splitlines():
    print(line)
один
два
три

Метод splitlines разбивает текст по границам строк и скрывает различия между переводами строк.

Пример
number = 42
print(str(number).zfill(6))
print('|' + 'центр'.center(10) + '|')
print('лево'.ljust(8) + '|')
print('право'.rjust(8) + '|')
000042
|  центр   |
лево    |
    право|

Приёмы выравнивания необходимы для вывода таблиц и отчётов в текстовой форме.

Пример
data = bytes.fromhex('48 65 6c 6c 6f')
print(data)
print(data.hex())
print(data.hex(sep=' '))
b'Hello'
48656c6c6f
48 65 6c 6c 6f

fromhex создаёт байты из шестнадцатеричной строки. hex преобразует байты обратно в шестнадцатеричное представление.

Пример
ba = bytearray([72, 105])
print(ba)
ba.append(33)
print(ba)
ba.extend(b' Python')
print(ba)
bytearray(b'Hi')
bytearray(b'Hi!')
bytearray(b'Hi! Python')

Методы append и extend добавляют элементы в изменяемый массив байтов.

Пример
data = ' Python;Golang;Java '.strip().split(';')
print(data)
print(' | '.join(data))
['Python', 'Golang', 'Java']
Python | Golang | Java

Совместное применение strip, split и join приводит текст к единому формату.

Пример
n = 123456
print(f'{n:,}'.replace(',', ' '))
print(f'{n:010d}')
print(f'{n:.2e}')
123 456
0000123456
1.23e+05

В f-строках можно менять вид чисел: разделители разрядов, лидирующие нули и экспоненциальную запись.

Пример
text = 'привет МИР'
print(text.capitalize())
print(text.title())
print(text.swapcase())
Привет мир
Привет Мир
ПРИВЕТ мир

Методы capitalize, title и swapcase преобразуют регистр в разных форматах.

Пример
s = 'abcdef'
print(s.isalpha())
print('123'.isdigit())
print('abc123'.isalnum())
print('   '.isspace())
True
True
True
True

Проверки категорий символов помогают фильтровать ввод и определять формат данных.

Строковые операции и типы в Python - comments

En
Python строковые (python)