Python для начинающих: строки и их обработка

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

Основные операции со строками в Python

Как создать строку в Python?

Самый простой способ - заключить текст в одинарные или двойные кавычки. Выбор кавычек не влияет на работу, но позволяет легко вставлять кавычки другого типа внутрь строки.

s1 = 'Привет, мир!'
s2 = "Hello, world!"
print(s1)
print(s2)

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

Привет, мир!
Hello, world!

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

Цель:

создание простой строки для хранения текста.

Как создать многострочную строку или строку с экранированием?

Для длинных строк или строк, содержащих переносы, используются тройные кавычки (''' или """). Сырые строки (raw strings) с префиксом r отключают обработку обратной косой черты, что удобно для регулярных выражений или путей Windows.

multiline = '''Это строка
с переносом'''
raw_path = r'C:\Users\Name'  # обратная косая черта не экранируется
print(multiline)
print(raw_path)

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

Это строка
с переносом
C:\Users\Name

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

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

Как получить длину строки?

Функция len() возвращает количество символов в строке.

text = "Python"
print(len(text))  # 6

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

6

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

Случаи использования:

проверка длины пароля, подсчет символов в сообщении.

Можно ли получить длину другим способом?

Технически можно перебирать строку в цикле и считать символы, но len() оптимальнее. Не рекомендуется изобретать велосипед.

Ошибка: len() считает количество Unicode-символов, а не байтов. Для байтовой длины используйте len(string.encode()).

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

Индексация строк в Python начинается с 0. Для доступа к одному символу используются квадратные скобки. Срез позволяет получить подстроку: s[start:stop:step].

word = "Программирование"
print(word[0])    # П
print(word[1:5])  # рогр
print(word[::-1]) # еинавориммаргоП (обратный порядок)

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

П
рогр
еинавориммаргоП

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

Цель:

извлечение частей строки, реверс, проверка палиндромов.

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

Отрицательные индексы считают с конца строки: -1 - последний символ.

s = "Python"
print(s[-1])   # n
print(s[-3:])  # hon

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

n
hon

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

Индекс за пределами строки вызывает IndexError. Срезы безопасны: если индекс выходит за границы, возвращается пустая строка.

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

Методы upper(), lower(), title() и capitalize() возвращают новую строку с изменённым регистром.

text = "приВЕТ, Мир!"
print(text.upper())       # ПРИВЕТ, МИР!
print(text.lower())       # привет, мир!
print(text.title())       # Привет, Мир!
print(text.capitalize())  # Привет, мир!

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

ПРИВЕТ, МИР!
привет, мир!
Привет, Мир!
Привет, мир!

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

Случаи:

стандартизация пользовательского ввода, приведение к единому регистру для сравнения.

Как работает swapcase()?

Метод меняет каждую букву на противоположный регистр.

print("Python3.8".swapcase())  # pYTHON3.8

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

pYTHON3.8

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

Методы не изменяют исходную строку, так как строки неизменяемы. Результат нужно сохранять в новую переменную.

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

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

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

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

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

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

Цель:

очистка ввода пользователя, удаление лишних пробелов из файлов.

Можно ли удалить произвольные символы, а не только пробелы?

Да, strip() принимает строку с символами, которые нужно удалить.

url = "www.example.com"
print(url.strip("wcom."))  # example

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

example

Важно: метод удаляет символы по одному, не как подстроку. Порядок не важен. Если нужно удалить точное совпадение с края, используйте removeprefix() (Python 3.9+) или срезы.

- Python join (метод join для строк в python)
- метод lower в python (метод lower для строк в python)
- метод replace python (метод replace в python)

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

1. Форматирование с f-строками и выравнивание

Пример
name = "Анна"
age = 30
# Выравнивание по ширине 10 символов
output = f"{name:>10} {age:<5}"
print(output)
# Числа с плавающей точкой
pi = 3.14159265
print(f"{pi:.2f}")  # 3.14
# Обращение к атрибутам
class Person:
    def __init__(self, name):
        self.name = name
p = Person("Борис")
print(f"{p.name!r}")  # 'Борис' (repr)
      Анна 30   
3.14
'Борис'

2. Трансляция символов с помощью str.translate()

Пример
# Замена латинских букв на похожие кириллические (шутка)
table = str.maketrans({
    'a': 'а', 'e': 'е', 'o': 'о', 'c': 'с', 'y': 'у'
})
original = "access code"
result = original.translate(table)
print(result)  # ассеss соdе (частично заменено)
ассеss соdе

3. Работа с Unicode и нормализация

Пример
import unicodedata
# Строка с составными символами
s = "café"  # é - один символ
s2 = "cafe\u0301"  # e + комбинированный акут (два символа)
print(len(s), len(s2))  # 4, 5
# Нормализация NFC - составная форма
norm = unicodedata.normalize('NFC', s2)
print(len(norm), norm)  # 4 café
print(s == norm)  # True
4 5
4 café
True

4. Разделение строки с помощью регулярных выражений (re.split)

Пример
import re
text = "apple, banana; cherry. date: fig"
# Разделить по одному из символов: , ; . :
parts = re.split(r'[,;.:]', text)
print(parts)
# С сохранением разделителей
parts2 = re.split(r'([,;.:])', text)
print(parts2)
['apple', ' banana', ' cherry', ' date', ' fig']
['apple', ',', ' banana', ';', ' cherry', '.', ' date', ':', ' fig']

5. Эффективная конкатенация большого количества строк

Пример
# Плохой способ (создает много промежуточных строк)
result = ''
for i in range(1000):
    result += str(i)
# Хороший способ - join
parts = [str(i) for i in range(1000)]
result_join = ''.join(parts)
# Сравнение скорости не приводится, но join существенно быстрее
(результат опущен, так как строка длинная)

6. Проверка строки на соответствие шаблону с помощью startswith и endswith

Пример
file_list = ["image1.jpg", "photo.png", "doc.pdf", "archive.tar.gz"]
for f in file_list:
    if f.endswith(('.jpg', '.png')):
        print(f"Изображение: {f}")
    elif f.startswith('archive'):
        print(f"Архив: {f}")
Изображение: image1.jpg
Изображение: photo.png
Архив: archive.tar.gz

Примеры работы со строками в Python - comments

En
строки python примеры (python)