Создание строк
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 задач от простых до сложных!