Python строки: основы работы и методы

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

Основы работы со строками в Python

Строки (string) в Python - это неизменяемые последовательности символов Unicode. Они используются для хранения и обработки текстовой информации. Рассмотрим основные способы работы со строками.

Как эффективно форматировать строки в современном Python?

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


name = 'Анна'
age = 28
message = f'Привет, {name}! Тебе {age} лет.'
print(message)
  

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

Привет, Анна! Тебе 28 лет.
  

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

Внутри скобок можно размещать любые выражения Python: арифметические операции, вызовы функций и даже условные конструкции.


a = 10
b = 3
result = f'Сумма: {a + b}, произведение: {a * b}'
print(result)
  

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

Сумма: 13, произведение: 30
  

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

Типичные ошибки:

  • SyntaxError – неверное использование кавычек внутри f-строки. Например, f'Он сказал: 'Привет'' вызовет ошибку. Для экранирования используйте разные типы кавычек или обратный слеш.
  • KeyError – если внутри фигурных скобок используется словарь с несуществующим ключом.
  • Попытка вставить объект без строкового представления (__str__) – обычно вызывает исключение, если объект не определён как строка.

Решение: всегда проверяйте синтаксис f-строк и при необходимости используйте ! для преобразования: f'{value!s}' или вызывайте str() явно.

Как соединить несколько строк в одну?

Для объединения строк применяется оператор +. Этот способ прост, но неэффективен при большом количестве конкатенаций из-за создания новых объектов строк.


part1 = 'Hello'
part2 = ' '
part3 = 'World'
result = part1 + part2 + part3
print(result)
  

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

Hello World
  

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

Ошибки:

  • TypeError при попытке сложить строку и число: 'Строка' + 123. Необходимо предварительно преобразовать число в строку через str().
  • Потеря производительности при циклической конкатенации (например, в цикле for). Вместо этого лучше использовать str.join().

Как форматировать строки старым способом (оператор %)?

До появления f-строк применялся оператор %, заимствованный из языка C. Он до сих пор работает, но считается устаревшим.


name = 'Иван'
age = 30
template = 'Меня зовут %s, мне %d лет.' % (name, age)
print(template)
  

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

Меня зовут Иван, мне 30 лет.
  

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

Основные спецификаторы: %s – строка, %d – целое число, %f – вещественное число, %x – шестнадцатеричное.

Проблемы:

  • TypeError если число аргументов не совпадает с числом спецификаторов.
  • Ошибки при передаче кортежа с одним элементом: '%s' % ('строка') работает, но '%s' % 'строка' тоже корректно. Однако '%s %s' % ('строка') вызовет ошибку, так как ожидается два элемента.
  • Отсутствие удобного способа для форматирования сложных выражений.

Как использовать метод str.format() для форматирования?

Метод str.format() появился в Python 2.6 и стал более гибким, чем оператор %. Он использует фигурные скобки как плейсхолдеры.


template = 'Имя: {0}, возраст: {1}'.format('Олег', 25)
print(template)

# С именованными аргументами:
template2 = 'Имя: {name}, возраст: {age}'.format(name='Олег', age=25)
print(template2)
  

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

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

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

Можно задавать выравнивание, заполнители, точность для чисел.


print('{:>10}'.format('текст'))   # выравнивание вправо
print('{:.2f}'.format(3.14159))  # два знака после запятой
  

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

     текст
3.14
  

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

Ошибки:

  • IndexError если номер плейсхолдера превышает количество аргументов.
  • ValueError при неверном спецификаторе форматирования (например, '{:.3d}' для целого числа).

Как задать многострочный текст?

Тройные кавычки '''...''' или """...""" позволяют создавать строки, занимающие несколько строк, с сохранением переносов.


text = '''Это многострочная строка.
Она содержит несколько строк.
Третья строка.'''
print(text)
  

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

Это многострочная строка.
Она содержит несколько строк.
Третья строка.
  

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

Часто используется для написания документации (docstrings) или SQL-запросов.

Ошибка:

Если случайно поставить лишние кавычки, может возникнуть синтаксическая ошибка. Также важно помнить, что тройные кавычки внутри строки должны быть корректно экранированы.

Как игнорировать escape-последовательности в строке?

Сырые (raw) строки с префиксом r или R отключают интерпретацию управляющих символов (\n, \t и т.д.). Это полезно для регулярных выражений и путей в Windows.


path = r'C:\Users\Name\Documents'
print(path)
regex = r'\d+\.\d+'
print(regex)
  

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

C:\Users\Name\Documents
\d+\.\d+
  

Ошибка:

Raw-строка не может заканчиваться обратным слешом (r'\' вызовет SyntaxError). Для такой ситуации нужно экранировать слеш отдельно.

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

- Python количество пробелов (количество пробелов в строке python)
- количество символов в тексте python (подсчет количества символов в строке python)
- число цифр python (количество цифр числа в python)

Расширенные примеры работы со строками

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

Проверка содержимого строки

Методы isalpha(), isdigit(), isalnum(), isspace() помогают определить тип символов.

Пример

text1 = 'Python123'
text2 = '12345'
text3 = '   '
print(text1.isalnum())  # буквы и цифры -> True
print(text2.isdigit())   # только цифры -> True
print(text3.isspace())   # только пробелы -> True
print('Hello'.isalpha()) # только буквы -> True
print('Hello!'.isalpha())# буква и знак -> False
True
True
True
True
False

Поиск подстроки

Метод find() возвращает индекс первого вхождения или -1. index() вызывает исключение, если подстрока не найдена.

Пример

s = 'Программирование на Python'
print(s.find('Python'))   # 20
print(s.find('Java'))     # -1
try:
    print(s.index('Java'))
except ValueError as e:
    print('Ошибка:', e)
20
-1
Ошибка: substring not found

Проверка начала и конца строки

Методы startswith() и endswith() принимают кортеж возможных префиксов/суффиксов.

Пример

url = 'https://example.com'
print(url.startswith(('http://', 'https://')))  # True
print(url.endswith(('.com', '.org')))            # True
print(url.endswith('.ru'))                       # False
True
True
False

Замена подстроки

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

Пример

text = 'один, два, три, один'
new_text = text.replace('один', 'раз', 1)  # заменить только первое вхождение
print(new_text)
new_text2 = text.replace('один', 'раз')     # заменить все
print(new_text2)
раз, два, три, один
раз, два, три, раз

Разделение и объединение строк

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

Пример

phrase = 'яблоко груша апельсин'
words = phrase.split()
print(words)

numbers = ['1', '2', '3']
line = ', '.join(numbers)
print(line)
['яблоко', 'груша', 'апельсин']
1, 2, 3

Удаление пробелов и символов с краёв

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

Пример

user_input = '  	  привет  \n'
print(repr(user_input))           # с отображением escape
cleaned = user_input.strip()
print(cleaned)

# удалить определённые символы
text = '***важно***'
print(text.strip('*'))            # 'важно'
'  \t  привет  \n'
привет
важно

Изменение регистра

Методы upper(), lower(), capitalize(), title(), swapcase().

Пример

s = 'привет МИР'
print(s.upper())       # 'ПРИВЕТ МИР'
print(s.lower())       # 'привет мир'
print(s.capitalize())  # 'Привет мир' (первая буква заглавная, остальные строчные)
print(s.title())       # 'Привет Мир' (каждое слово с заглавной)
print(s.swapcase())    # 'ПРИВЕТ мир'
ПРИВЕТ МИР
привет мир
Привет мир
Привет Мир
ПРИВЕТ мир

Выравнивание и дополнение

Методы center(), ljust(), rjust(), zfill().

Пример

print('text'.center(10, '-'))   # '---text---'
print('text'.ljust(10, '.'))    # 'text......'
print('text'.rjust(10, '.'))    # '......text'
print('42'.zfill(5))            # '00042'
---text---
text......
......text
00042

Трансляция символов (maketrans / translate)

Позволяет заменить несколько символов одновременно по таблице соответствий.

Пример

table = str.maketrans('abc', '123')
text = 'abcdef'
new_text = text.translate(table)
print(new_text)  # '123def'
123def

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

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

Пример

original = 'Привет'
encoded = original.encode('utf-8')
print(encoded)                # b'\xd0\x9f\xd1\x80...'
decoded = encoded.decode('utf-8')
print(decoded)                # 'Привет'
b'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'
Привет

Срезы строк (slicing)

Строку можно разрезать, используя синтаксис [start:stop:step]. Отрицательный шаг позволяет развернуть строку.

Пример

s = 'Python'
print(s[2:5])    # 'tho'
print(s[::-1])   # 'nohtyP'
print(s[::2])    # 'Pto' (каждый второй символ)
print(s[:4])     # 'Pyth'
tho
nohtyP
Pto
Pyth

Проверка на вхождение подстроки (оператор in)

Пример

s = 'Строка для проверки'
print('проверки' in s)   # True
print('тест' in s)       # False
True
False

Сравнение строк

Строки сравниваются лексикографически (по ASCII/Unicode коду).

Пример

print('apple' < 'banana')  # True, так как 'a' < 'b'
print('Python' == 'python') # False (разный регистр)
print('100' < '20')         # True (символ '1' < '2', поэтому строковое сравнение)
True
False
True

Строки в Python - comments

En
Python string (python)