Строка, длина, склейка
Строка — это текст: слово, предложение, номер телефона, что угодно между кавычками.
имя = "Аня"
фраза = 'привет'
пусто = ""
Кавычки одинарные и двойные равноправны. Выбирают те, которых нет внутри самого текста:
print("он сказал 'да'")
print('кавычки "вот такие"')он сказал 'да' кавычки "вот такие"
Длину даёт len — считает знаки, включая пробелы:
print(len("Питон"))
print(len("два слова"))
print(len(""))5 9 0
Складывать строки можно плюсом — это называется склейкой:
имя = "Аня"
print("Привет, " + имя + "!")Привет, Аня!
А умножать на число — повторением. Приём из тех, что удивляют в первый раз и потом постоянно нужны:
print("-" * 20)
print("ха" * 3)-------------------- хахаха
Номера знаков и срезы
К каждому знаку строки можно обратиться по номеру. Номера идут с нуля.
слово = "Питон"
print(слово[0])
print(слово[2])
print(слово[-1])П т н
Отрицательные номера считают с конца: -1 — последний знак, -2 — предпоследний. Это удобнее, чем слово[len(слово) - 1], и пишут почти всегда так.
Срез берёт кусок строки. Записывается двумя номерами через двоеточие:
слово = "Питон42"
print(слово[1:4])
print(слово[:5])
print(слово[5:])ито Питон 42
Правило одно, и оно объясняет всё: первый номер входит, второй — нет. Пропущенный номер означает «от начала» или «до конца».
Отсюда удобное следствие: длина куска — это разность номеров. [1:4] даёт ровно 3 знака.
дата = "2026-03-31"
print(дата[:4])
print(дата[5:7])
print(дата[-2:])2026 03 31
Методы строк
У строки есть методы — действия, которые пишут через точку после неё.
имя = " Аня "
print(имя.strip())
print("привет".upper())
print("ПРИВЕТ".lower())Аня ПРИВЕТ привет
strip убирает пробелы по краям, upper и lower меняют регистр. Все три возвращают новую строку — старая остаётся прежней.
имя = " Аня "
имя.strip()
print("[" + имя + "]")
имя = имя.strip()
print("[" + имя + "]")[ Аня ] [Аня]
Вторая строка ничего не изменила: результат никуда не записали, и он пропал. Это самая частая ошибка со строками.
Ещё четыре метода, которые нужны постоянно:
print("раз,два,три".split(","))
print("-".join(["а", "б", "в"]))
print("привет мир".replace("мир", "Питон"))
print("файл.txt".endswith(".txt"))['раз', 'два', 'три'] а-б-в привет Питон True
split режет строку по разделителю и даёт список. join — обратное действие: собирает список в строку. replace заменяет, endswith проверяет конец.
Проверки и сравнение
Проверить, есть ли кусок внутри строки, проще всего словом in:
print("тон" in "Питон")
print("кот" in "Питон")True False
Ответ — True или False. Это логический тип, и следующий урок будет целиком про него.
Ещё три проверки, которые нужны постоянно:
print("файл.txt".startswith("файл"))
print("файл.txt".endswith(".txt"))
print("12345".isdigit())True True True
isdigit отвечает, состоит ли строка только из цифр. Так проверяют, можно ли превратить текст в число, не получив ошибку:
значение = "42"
print(значение.isdigit())
print("4.2".isdigit())
print("сорок".isdigit())True False False
Обратите внимание: «4.2» — не цифры, потому что точка цифрой не является.
Сравнивать строки можно как числа — знаками == и !=:
print("Аня" == "Аня")
print("Аня" == "аня")
print("Аня".lower() == "аня")True False True
Регистр важен. Поэтому перед сравнением данных, пришедших от человека, почти всегда пишут .strip().lower().