Строки в Python для начинающих: индексы, срезы, методы, f-строки
· 3 мин чтения СтатьяPython

Строки в Python для начинающих: индексы, срезы, методы, f-строки

Как устроены строки в Python: индексы с нуля, срезы, почему методы не меняют исходную строку и как собрать текст из переменных f-строкой.

Перейти к практике по теме курса ↓

Строка в Python — это текст в кавычках: "привет" или 'привет', разницы нет. С ней работают так же, как с последовательностью букв: можно взять одну букву, кусок, узнать длину, заменить часть. Вот главное, что нужно знать новичку.

Индексы: счёт с нуля

У каждой буквы есть номер, и считают его с нуля:

word = "Python"
print(word[0])    # P
print(word[5])    # n
print(word[-1])   # n — отрицательный номер считает с конца
print(len(word))  # 6

Последняя буква — word[len(word) - 1], но проще писать word[-1]. Номер за пределами строки даёт ошибку IndexError: у слова из шести букв нет буквы с номером 6.

Срезы: кусок строки

Срез берёт буквы с одного номера до другого, причём правая граница не входит:

word[0:2]    # "Py" — буквы 0 и 1
word[2:]     # "thon" — от второй до конца
word[:-2]    # "Pyth" — всё, кроме двух последних
word[::-1]   # "nohtyP" — задом наперёд

Правило «правая граница не входит» кажется странным, но удобно: word[:2] + word[2:] всегда даёт исходную строку, и длина среза — просто разность номеров.

Строки не меняются

Это главная ловушка. Методы строки не трогают её саму, а возвращают новую:

name = "  анна  "
name.strip()          # вернёт "анна", но name осталась прежней
name = name.strip()   # вот так строка правда поменяется
print(name.title())   # Анна

Поэтому вызов text.upper() без присваивания ничего не делает с text. Самые нужные методы: upper и lower меняют регистр, strip убирает пробелы по краям, replace заменяет кусок, split режет строку на список слов, find ищет подстроку. Проверить, есть ли кусок внутри строки, проще всего так: "th" in word.

f-строки: текст из переменных

Чтобы вставить значения в текст, перед кавычками ставят букву f, а переменные пишут в фигурных скобках:

name = "Анна"
score = 9.456
print(f"{name}, ваш результат: {score:.1f}")
# Анна, ваш результат: 9.5

После двоеточия в скобках можно задать формат: :.1f — один знак после запятой. Склеивать строки плюсом тоже можно, но число придётся сначала превратить в строку через str(), иначе будет ошибка.

Где потренироваться

Строкам посвящён третий урок курса Python: срезы, методы и f-строки на заданиях, которые проверяются прямо в браузере. Если вы только начинаете, стоит начать с первой программы. А разбор циклов по числам — в статье цикл for и range. Весь путь — в курсе Python с нуля.

Попробуйте задание из курса

Откройте первый урок: теория и начало практики доступны без регистрации.

Курс Python с нуля Код пишется и проверяется прямо в браузере — первые уроки открыты без регистрации.
Открыть курс

Ещё в блоге

Новый курс Нейросеть в офисе: бесплатный курс с погружением в письма, протоколы и отчёты без выдумок Как писать задание нейросети, готовить письма, протоколы, отчёты и регламенты, работать с формулами, проверять результат и не отдавать закрытые данные. Бесплатно. · 3 мин чтения Новый курс Как научиться работать в Figma: курс о том, как устроен макет интерфейса Фреймы и сетки, шрифтовая шкала, цвет и переменные, auto layout, адаптив, компоненты и варианты, прототип и передача макета в разработку. · 3 мин чтения Новый курс Как не попасться мошенникам: бесплатный курс с погружением в кибергигиену Звонки «из банка», коды из СМС, поддельные сайты, пароли и двухфакторная защита — и что делать, если деньги или аккаунт уже увели. Бесплатно. · 3 мин чтения СтатьяSQL JOIN в SQL простыми словами: INNER и LEFT JOIN с примерами Как соединить две таблицы в SQL: чем INNER JOIN отличается от LEFT JOIN, зачем условие ON и три ошибки, из-за которых соединение тихо врёт. · 4 мин чтения