Python Lab

Строки в Python: методы и операции

Полный справочник по мето��ам строк: split, join, replace, format, f-строки, регулярные выражения.

1 декабря 2025 г.·10 мин чтения
строкиpython basicsметоды строк

Создание строк

s1 = 'одинарные кавычки'
s2 = "двойные кавычки"
s3 = """многострочная
строка"""
s4 = r"сырая строка — \n не экранируется"
s5 = b"байтовая строка"

Базовые опера��ии

s = "Python"

len(s)          # 6 — длина
s[0]            # 'P' — доступ по индексу
s[-1]           # 'n' — последний символ
s[2:4]          # 'th' — срез
s[::-1]         # 'nohtyP' — разворот
s + " Lab"      # 'Python Lab' — конкатенация
s * 3           # 'PythonPythonPython' — повторение
"P" in s        # True — вхождение

f-строки (Python 3.6+)

Самый удобный способ форматирования:

name = "Alice"
age = 30
print(f"Привет, {name}! Тебе {age} лет.")

# Выражения внутри {}
print(f"2 + 2 = {2 + 2}")
print(f"Имя в верхнем регистре: {name.upper()}")

# Форматирование чисел
pi = 3.14159
print(f"π ≈ {pi:.2f}")       # π ≈ 3.14
print(f"{1000000:,}")         # 1,000,000
print(f"{0.75:.0%}")          # 75%

# Выравнивание
print(f"{'left':<10}|")       # 'left      |'
print(f"{'right':>10}|")      # '     right|'
print(f"{'center':^10}|")     # '  center  |'

Методы строк: таблица

МетодОписаниеПример
upper()Верхний регистр"hi".upper()"HI"
lower()Нижний регистр"HI".lower()"hi"
title()Каждое слово с заглавной"hello world".title()"Hello World"
strip()Убрать пробелы" hi ".strip()"hi"
split(sep)Разбить на список"a,b,c".split(",")["a","b","c"]
join(lst)Объединить список",".join(["a","b","c"])"a,b,c"
replace(a,b)Заменить подстроку"hi world".replace("hi","hello")
find(sub)Найти подстроку"python".find("th")2
startswith(s)Начинается с"hello".startswith("he")True
endswith(s)Заканчивается на"hello".endswith("lo")True
count(sub)Подсчитать вхождения"aaa".count("a")3
isdigit()Только цифры?"123".isdigit()True
isalpha()Только буквы?"abc".isalpha()True
zfill(n)Заполнить нулями"42".zfill(5)"00042"
center(n)Центрировать"hi".center(10)" hi "

split() и join()

# split — разбивает строку
text = "яблоко,груша,банан"
fruits = text.split(",")
print(fruits)   # ['яблоко', 'груша', 'банан']

# split без аргументов разбивает по пробелам
words = "hello world python".split()
print(words)    # ['hello', 'world', 'python']

# splitlines — по строкам
lines = "строка 1\nстрока 2\nстрока 3".splitlines()

# join — объединяет
print(" | ".join(fruits))  # яблоко | груша | банан
print("".join(["H", "e", "l", "l", "o"]))  # Hello

replace() и translate()

s = "Hello, World!"
print(s.replace("World", "Python"))   # Hello, Python!
print(s.replace("l", "L", 2))         # HeLLo, World! (только 2 замены)

# translate — замена по таблице символов
table = str.maketrans("aeiou", "*****")
print("hello world".translate(table))  # h*ll* w*rld

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

import re

text = "Телефоны: +7-900-123-45-67 и +7-800-555-35-35"

# Поиск первого совпадения
m = re.search(r"\+7-\d{3}-\d{3}-\d{2}-\d{2}", text)
if m:
    print(m.group())    # +7-900-123-45-67

# Все совпадения
phones = re.findall(r"\+7-[\d-]+", text)
print(phones)   # ['+7-900-123-45-67', '+7-800-555-35-35']

# Замена
clean = re.sub(r"\s+", " ", "много   пробелов   здесь")
print(clean)    # много пробелов здесь

# Разбивка
parts = re.split(r"[,;]\s*", "a, b; c,d")
print(parts)    # ['a', 'b', 'c', 'd']

Работа с Unicode

Python 3 строки — это Unicode по умолчанию:

s = "Привет, мир! 🐍"
print(len(s))       # 14
print(s.upper())    # ПРИВЕТ, МИР! 🐍

# encode/decode
encoded = s.encode("utf-8")
print(type(encoded))    # <class 'bytes'>
decoded = encoded.decode("utf-8")

Практические паттерны

Очистка пользовательского ввода

def clean_input(s: str) -> str:
    return " ".join(s.strip().split())  # убираем лишние пробелы

clean_input("  hello   world  ")  # "hello world"

Проверка палиндрома

def is_palindrome(s: str) -> bool:
    s = s.lower().replace(" ", "")
    return s == s[::-1]

is_palindrome("А роза упала на лапу Азора")  # True

Подсчёт слов

from collections import Counter

text = "the quick brown fox jumps over the lazy dog the"
word_freq = Counter(text.lower().split())
print(word_freq.most_common(3))
# [('the', 3), ('quick', 1), ('brown', 1)]

Строки — один из самых часто используемых типов в Python. Попрактикуйтесь в нашем тренажёре — раздел «Строки» содержит 40 задач от простых до сложных!

Хочешь закрепить знания?

Попробуй решить задачи на Python в интерактивном тренажёре

К задачам