Строки: работа с текстом
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() возвращает число символов, включая пробелы и знаки препинания.
word = "Python"
print(word[0], word[5], word[-1])
print(len(word))
print(word[0:2], word[2:])P n n
6
Py thonword[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 |
- Что выведет этот код?
word = "banana" print(word[1]) - Что выведет этот код?
word = "banana" print(word[-2]) - Что выведет этот код?
print(len("Hi there!")) - Что выведет этот код?
word = "school" print(word[1:4]) - Что выведет этот код?
name = "Jun" print(f"Hi {name}, you are {13 + 1}.") - Что выведет этот код?
print("ab" * 3) - Что выведет этот код?
s = "hello" s.upper() print(s)HELLOhelloHelloAn error
- Что выведет этот код?
print("rice" in "fried rice") - Что выведет этот код?
name = "Mina" print(f"{name}") print("{name}")Mina
MinaMina
{name}{name}
Mina{name}
{name}
- Что выведет этот код?
print("Total: " + str(3 * 1000))Total: 3000Total: 3 * 1000Total: 31000An 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:].
- 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