Python: работа со строками - от простого к сложному

Раздел: Python -> Строки

Основные методы преобразования строк в Python

Наиболее эффективное решение: f-строки (f-strings)

Для вставки значений внутрь строки наилучшим образом подходят f-строки, появившиеся в Python 3.6. Они обеспечивают высокую производительность и отличную читаемость. Внутри фигурных скобок можно размещать переменные и даже выражения.

name = "Елена"
age = 28
result = f"Меня зовут {name}, мне {age} лет."

Python strip (метод strip в python)

"Меня зовут Елена, мне 28 лет."

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

Если требуется вывести сами фигурные скобки, их необходимо удваивать: {{ и }}. При использовании сложных выражений внутри скобок может возникнуть ошибка синтаксиса. Для многострочных выражений рекомендуется выносить их за пределы строки.

Как подставить значения в строку с помощью метода format?

Метод str.format() позволяет заменить плейсхолдеры {} на переданные аргументы. Доступны нумерованные и именованные поля.

template = "Имя: {}, возраст: {}"
text = template.format("Олег", 35)

Tuple в str python (преобразование кортежа в строку в python)

"Имя: Олег, возраст: 35"

Python объект в строку (преобразование объекта в строку в python)

Несоответствие количества аргументов и плейсхолдеров приводит к IndexError. Для сложных форматирований (например, выравнивания) синтаксис может быть громоздким.

Как изменить регистр всех букв в строке?

Для преобразования регистра применяются методы lower(), upper(), capitalize(), title() и swapcase().

text = "PyThOn 3.0"
print(text.lower())
print(text.upper())
print(text.capitalize())
print(text.title())
print(text.swapcase())

Python convert string (преобразование строк в python)

python 3.0
PYTHON 3.0
Python 3.0
Python 3.0
pYtHoN 3.0

Python str to bytes (преобразование строки в байты в python)

Для корректной работы с Unicode в некоторых языках (например, немецкий ß) lower() не изменяет символ. Рекомендуется использовать casefold() для более агрессивного приведения к нижнему регистру. capitalize() делает заглавной только первую букву, остальные переводит в нижний регистр.

Как удалить пробелы в начале и конце строки?

Методы strip(), lstrip() и rstrip() удаляют пробельные символы (и другие, если передать аргумент).

line = "   пробелы вокруг   "
print(repr(line.strip()))
print(repr(line.lstrip()))
print(repr(line.rstrip()))

функция разделить python (разделение строки на список в python)

'пробелы вокруг'
'пробелы вокруг   '
'   пробелы вокруг'

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

Если необходимо удалить не только пробелы, а, например, знаки препинания, их нужно передать в виде строки: line.strip(".,! "). Без аргумента удаляются стандартные пробельные символы (пробел, табуляция, перевод строки).

Как разбить строку на части и снова соединить?

Метод split() делит строку по указанному разделителю на список. Метод join() объединяет элементы списка в строку с заданным разделителем.

sentence = "яблоко, банан, вишня"
fruits = sentence.split(", ")
print(fruits)
rejoined = " и ".join(fruits)
print(rejoined)

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

['яблоко', 'банан', 'вишня']
яблоко и банан и вишня

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

split() без аргумента делит по любым пробельным символам, игнорируя начальные и конечные пробелы, а также множественные пробелы. split(' ') делит только по одиночному пробелу, оставляя пустые строки при нескольких пробелах. join() может использоваться только для списка строк; если список содержит числа, их нужно предварительно преобразовать в строки.

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

Метод replace() заменяет все вхождения подстроки на новую. Третий аргумент count ограничивает количество замен.

text = "один, два, один, три"
new_text = text.replace("один", "раз", 1)
print(new_text)

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

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

задания на строки python (задания на строки в python)

Без указания count будут заменены все вхождения. Для сложных регулярных замен лучше использовать модуль re. Метод не изменяет исходную строку, а возвращает новую.

Как преобразовать строку в число или логическое значение?

Функции int(), float() и bool() преобразуют строку в соответствующий тип. Важно помнить, что bool() возвращает True для любой непустой строки.

s = "123"
n = int(s)
print(n, type(n))
s2 = "3.14"
f = float(s2)
print(f, type(f))
s3 = "False"
b = bool(s3)  # True, так как строка непустая
print(b)
s4 = ""
b2 = bool(s4)  # False
print(b2)
s5 = "abc"
try:
    n2 = int(s5)
except ValueError as e:
    print("Ошибка:", e)

замена символов python (замена символов в строке python)

123 
3.14 
True
False
Ошибка: invalid literal for int() with base 10: 'abc'

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

При преобразовании нечисловой строки возникает ValueError. Для безопасного преобразования можно использовать try/except или проверить строку методами isdigit(), isnumeric() (но они не обрабатывают дробные числа). bool("False") даёт True, поэтому для явного преобразования нужно сравнивать с "True" или использовать ast.literal_eval.

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

Методы encode() и decode() преобразуют строку в байты и наоборот с указанием кодировки (по умолчанию UTF-8).

text = "Привет, мир!"
bytes_utf8 = text.encode("utf-8")
print(bytes_utf8)
decoded = bytes_utf8.decode("utf-8")
print(decoded)
try:
    bytes_latin = text.encode("latin-1")
except UnicodeEncodeError as e:
    print("Ошибка:", e)

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

b'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82, \xd0\xbc\xd0\xb8\xd1\x80!'
Привет, мир!
Ошибка: 'latin-1' codec can't encode characters in position 0-5: ordinal not in range(256)
Если строка содержит символы, не представимые в выбранной кодировке, возникает UnicodeEncodeError. Можно использовать аргумент errors='ignore' или 'replace' для обработки ошибок. Декодирование с неправильной кодировкой вызывает UnicodeDecodeError.
- Python новая строка (использование символа новой строки в python)
- Python строки find (метод find для строк)
- Python string index (метод str.index в python)

Расширенные примеры преобразования строк в Python

Дополнительные способы и редкие случаи использования

Регулярные выражения для замены

Пример
import re
result = re.sub(r'\d+', 'N', 'abc123def456')
print(result)
abcNdefN

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

Пример
from datetime import datetime
date_str = "2023-01-15"
dt = datetime.strptime(date_str, "%Y-%m-%d")
print(dt)
formatted = dt.strftime("%d.%m.%Y")
print(formatted)
2023-01-15 00:00:00
15.01.2023

Кодирование в Base64

Пример
import base64
encoded = base64.b64encode(b"Hello, World!")
print(encoded)
decoded = base64.b64decode(encoded).decode()
print(decoded)
b'SGVsbG8sIFdvcmxkIQ=='
Hello, World!

Список кодов символов

Пример
codes = [ord(c) for c in "Python"]
print(codes)
chars = ''.join(chr(code) for code in codes)
print(chars)
[80, 121, 116, 104, 111, 110]
Python

Использование Template для безопасной подстановки

Пример
from string import Template
t = Template("Hello, $name!")
result = t.substitute(name="World")
print(result)
Hello, World!

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

Пример
hex_data = "48656c6c6f"
byte_data = bytes.fromhex(hex_data)
print(byte_data)
back_to_hex = byte_data.hex()
print(back_to_hex)
b'Hello'
48656c6c6f

Форматирование с выравниванием и точностью

Пример
left = "{:<10}".format("left")
right = "{:>10}".format("right")
center = "{:^10}".format("center")
number = "{:.2f}".format(3.14159)
print(repr(left), repr(right), repr(center), repr(number))
'left      ' '     right' '  center  ' '3.14'

Безопасное преобразование строки в словарь

Пример
import json
json_str = '{"name": "Анна", "age": 30}'
data = json.loads(json_str)
print(data)
print(type(data))
{'name': 'Анна', 'age': 30}
<class 'dict'>

Разделение с помощью partition и rpartition

Пример
text = "яблоко:банан:вишня"
part = text.partition(":")
print(part)
rpart = text.rpartition(":")
print(rpart)
('яблоко', ':', 'банан:вишня')
('яблоко:банан', ':', 'вишня')

Дополнение строки нулями (zfill)

Пример
num_str = "42"
padded = num_str.zfill(5)
print(padded)
00042

преобразование строк в Python - comments

En
Python convert string (python)