Строковые типы и методы обработки текста
Текстовые данные и базовые методы строк
В 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 убирает пробелы по краям. Исходная переменная остаётся без изменений. Эти операции применимы при сравнении пользовательского ввода с эталонными значениями.
Как соединить много строк без многократной конкатенации?
words = ['Python', 'операции', 'строки']
result = ', '.join(words)
print(result)
Python заменить число (замена числа в python (например, в строке))
Python, операции, строки
Python часть текста (извлечение подстроки из строки в python)
Метод join применяют при построении CSV, написании сообщений и генерации URL. В цикле складывать строки оператором + не рекомендуется, так как каждая операция создаёт новый объект.Как вставить значения в строку с форматированием?
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.Как заменить символы или подстроки?
text = 'один, два, один'
print(text.replace('один', 'раз'))
print(text.replace('один', 'раз', 1))Python количество пробелов (количество пробелов в строке python)
раз, два, раз раз, два, один
число цифр python (количество цифр числа в python)
Третий аргумент задаёт количество замен. Метод используют для очистки текста, нормализации чисел и замены переносов строк.Как найти подстроку и посчитать число вхождений?
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 применяется для статистики слов в тексте.Как перевести текст в байтовое представление и обратно?
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. Декодирование обратно возвращает исходную строку. Этот вариант важен для сетевых протоколов и двоичных форматов.Как создать изменяемую байтовую последовательность?
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) без единицы. Проверка длины перед обращением к элементу исключает эту ошибку.
Дополнительные операции со строками и байтами
В этом разделе представлены дополнительные операции со строками, байтами и форматированием.
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
Проверки категорий символов помогают фильтровать ввод и определять формат данных.