edubun
Русский

Строки: работа с текстом

Python нумерует буквы в "Python" с 0, поэтому "Python"[5] даёт последнюю букву n, а "Python"[6] вызывает ошибку.

Для именной таблички нужно собрать текст из частей

Представь именные таблички на школьном празднике или встрече клуба. Оформление у всех одинаковое, а имена разные, поэтому программа может напечатать их по одному шаблону. Текст в Python называют строкой, а быстрее всего собрать её из частей позволяет f-строка: поставь букву f перед открывающей кавычкой, а имена переменных заключи в фигурные скобки. Python заменит каждое {name} значением соответствующей переменной.

name = "Mina"
club = "Robotics"
print(f"Hello, {name}!")
print(f"{name} joined {club}.")
Вывод
Hello, Mina!
Mina joined Robotics.

Есть и два более старых способа соединять текст. Оператор + склеивает строки, а * повторяет строку. По обе стороны + должны быть строки, поэтому число сначала нужно превратить в текст с помощью str(). В f-строках это преобразование происходит автоматически, поэтому их обычно и выбирают.

item = "gimbap"
count = 2
print(item + " x " + str(count))
print("-" * 12)
print(f"{item} x {count}")
Вывод
gimbap x 2
------------
gimbap x 2

У каждого символа есть номер позиции, начиная с 0

Строка состоит из последовательности символов, у каждого из которых есть индекс. Первый символ имеет индекс 0, а не 1. Квадратные скобки выбирают один символ: word[0] даёт первый. Отрицательные индексы отсчитываются с конца, поэтому word[-1] всегда даёт последний символ независимо от длины. Функция len() возвращает число символов, включая пробелы и знаки препинания.

Индексы в "Python": от 0 до 5 с начала, от -6 до -1 с конца. Срез word[0:2] заканчивается перед индексом 2.
word = "Python"
print(word[0], word[5], word[-1])
print(len(word))
print(word[0:2], word[2:])
Вывод
P n n
6
Py thon

word[0:2] является срезом: он начинается с индекса 0 и заканчивается прямо перед индексом 2, давая "Py". Если опустить конец, как в word[2:], срез дойдёт до конца строки. Поначалу правило невключённой границы кажется странным, зато word[0:2] + word[2:] всегда восстанавливает целое слово.

Методы строк возвращают новую строку

У строк есть встроенные инструменты, называемые методами; их пишут после точки. upper() и lower() меняют регистр, replace(old, new) заменяет все вхождения одного фрагмента другим, а strip() убирает пробелы по краям. Это полезно, если при заполнении формы кто-то ввёл лишний пробел. Ключевое слово in проверяет, входит ли одна строка в другую, и возвращает True или False. Ни один из этих инструментов не меняет исходную строку. После создания строку нельзя изменить: каждый метод возвращает новую, а ты сохраняешь её, присваивая имени.

menu = "  tteokbokki  "
clean = menu.strip()
print(clean.upper())
print(clean.replace("k", "K"))
print("bok" in clean, len(menu), len(clean))
Вывод
TTEOKBOKKI
tteoKboKKi
True 14 10

Чтобы включить кавычку в строку, обрамляй её кавычками другого вида: "It's fine". Обратная косая черта начинает управляющую последовательность: \n внутри строки означает «начать здесь новую строку», поэтому один print может вывести две строки.

print("It's lunch time.")
print("Line one\nLine two")
Вывод
It's lunch time.
Line one
Line two
f-строкаf"...{name}..." подставляет значения в текст
индексНомер позиции символа, начиная с 0
срезs[a:b]: от индекса a до b, не включая b
len()Число символов в строке
методИнструмент, записываемый после точки, например s.upper()
\nУправляющая последовательность для перехода на новую строку
in"a" in "cat" возвращает True
  1. Что выведет этот код?
    word = "banana"
    print(word[1])
  2. Что выведет этот код?
    word = "banana"
    print(word[-2])
  3. Что выведет этот код?
    print(len("Hi there!"))
  4. Что выведет этот код?
    word = "school"
    print(word[1:4])
  5. Что выведет этот код?
    name = "Jun"
    print(f"Hi {name}, you are {13 + 1}.")
  6. Что выведет этот код?
    print("ab" * 3)
  7. Что выведет этот код?
    s = "hello"
    s.upper()
    print(s)
    • HELLO
    • hello
    • Hello
    • An error
  8. Что выведет этот код?
    print("rice" in "fried rice")
  9. Что выведет этот код?
    name = "Mina"
    print(f"{name}")
    print("{name}")
    • Mina
      Mina
    • Mina
      {name}
    • {name}
      Mina
    • {name}
      {name}
  10. Что выведет этот код?
    print("Total: " + str(3 * 1000))
    • Total: 3000
    • Total: 3 * 1000
    • Total: 31000
    • An error
Частые ошибки
  • «Первая буква находится в word[1]». Индексы начинаются с 0, поэтому word[1] даёт вторую букву. Последний допустимый индекс равен len(word) - 1; "Python"[6] вызывает IndexError: string index out of range.
  • "Age: " + 15 выводит Age: 15 Строку и int нельзя соединить с помощью +. Python выдаёт TypeError: can only concatenate str (not "int") to str. Используй str(15) или f-строку.
  • «Можно исправить одну букву с помощью word[0] = "J"». Строку нельзя изменить на месте: TypeError: 'str' object does not support item assignment. Вместо этого собери новую строку, например "J" + word[1:].
Заметка для учителяСчёт с 0 лучше объяснять картинкой, а не правилом. Нарисуй ячейки с номерами сверху и снизу, как на схеме, и попроси учеников показать word[2] и word[-2] до ввода кода. Срезы понятнее, если представлять числа границами между ячейками, а не подписями на них. Ловушка с upper(), когда метод вызывают, но результат не сохраняют, встретится снова в списках, поэтому удели ей минуту сейчас. В корейских шрифтах Windows обратная косая черта может отображаться знаком воны; для Python это та же клавиша и тот же символ.
Главное
  • f"...{x}..." подставляет значения в текст.
  • Индексы начинаются с 0; -1 даёт последний символ.
  • s[a:b] идёт от a до b, не включая b.
  • Методы вроде upper() возвращают новую строку; исходная не меняется.
  • "\n" обозначает переход на новую строку внутри строки.
Источники курса (6)
  • Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
  • Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
  • Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
  • General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
  • Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
  • Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)

Проверено: 2026-10-19