Устройства часто передают данные строкой: temp=25;rpm=1500. Чтобы достать из неё числа, строку надо уметь резать, искать, заменять и разбивать на части. Сегодня разберём работу со строками вплотную. В конце соберём парсер телеметрии — разложим строку показаний на значения.

После урока сможешь: Учим работать с текстовыми данными: индексы и срезы строк, методы upper/lower/replace/count/find, разбор через split и формат чисел. В конце собираешь парсер телеметрии.
Строка — цепочка символов
Строка состоит из символов по порядку. У каждого символа есть индекс, считают с нуля. Длину даёт len, отдельный символ берут по индексу в квадратных скобках — как у списка.
kod = "M1-2024"
print(len(kod))
print(kod[0])
print(kod[-1])
7
M
4
Строка — символы по порядку, у каждого свой индекс: kod = "M1-2024" символ: M 1 - 2 0 2 4 индекс: 0 1 2 3 4 5 6 len(kod) = 7 kod[0] = "M" (первый символ) kod[-1] = "4" (последний символ)
Срезы: берём кусок строки
Срез берёт из строки не один символ, а кусок: stroka[начало:конец] — символы с индекса «начало» до «конец», причём «конец» НЕ включается. Пропустишь начало — с самого старта; пропустишь конец — до самого конца.
kod = "M1-2024"
print(kod[0:2])
print(kod[3:])
print(kod[-4:])
M1
2024
2024
Срез берёт кусок строки stroka[начало:конец]: kod = "M1-2024" индекс: 0 1 2 3 4 5 6 kod[0:2] --> "M1" (с 0 до 2, двойку НЕ включая) kod[3:] --> "2024" (с 3 и до конца) kod[-4:] --> "2024" (последние 4 символа)
Главная ловушка срезов: правый край НЕ входит.
kod[0:2]берёт символы 0 и 1 — два штуки, а символ с индексом 2 уже не берётся.
Методы строк: upper, lower, replace, count, find
У строк есть готовые методы. .upper() — заглавные буквы, .lower() — строчные, .replace(a, b) — заменить все a на b (новая строка), .count(x) — сколько раз встречается, .find(x) — индекс первого вхождения (или -1, если нет).
s = "temp=25;temp=30"
print(s.upper())
print(s.count("temp"))
print(s.find("="))
print(s.replace(";", " "))
TEMP=25;TEMP=30
2
4
temp=25 temp=30
replaceне меняет старую строку, а создаёт новую — поэтому результат печатают или кладут в переменную. Аfindвозвращает-1, если искомого в строке нет.
Разбор строки: split и формат чисел
Метод .split(разделитель) разбивает строку на список частей по разделителю — это главный приём разбора телеметрии. А чтобы красиво вывести дробное число, используют формат f"{x:.2f}" — два знака после запятой.
stroka = "temp=25"
chasti = stroka.split("=")
print(chasti[0])
print(chasti[1])
x = 3.14159
print(f"{x:.2f}")
temp
25
3.14
split разбивает строку на части по разделителю:
"temp=25".split("=") --> ["temp", "25"]
| |
chasti[0] chasti[1]
Формат числа: f"{x:.2f}" -> два знака после запятой
После
splitчасти — это ТЕКСТ (str). Чтобы посчитать значение, не забудь превратить нужную часть в число черезintилиfloat(приём с занятия 2).
Миссия: парсер телеметрии
Скопируй программу в песочницу и запусти. Она берёт строку телеметрии вида temp=25;rpm=1500, разбивает её и достаёт числовые значения температуры и оборотов. Поменяй числа в строке — программа разберёт новую.
# Парсер телеметрии
telemetriya = "temp=25;rpm=1500"
chasti = telemetriya.split(";")
temp = int(chasti[0].split("=")[1])
rpm = int(chasti[1].split("=")[1])
print(f"Температура: {temp}")
print(f"Обороты: {rpm}")
Температура: 25
Обороты: 1500
Контрольный вопрос. У строки kod = «M1-2024» какой символ вернёт kod[0]?
Исходный код для этого задания:
kod = "M1-2024"Подсказка: Индекс 0 — это самый первый символ строки.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
kod = "M1-2024" print(len(kod))Подсказка: len считает количество символов в строке. Посчитай символы в M1-2024 (дефис тоже символ).
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши то, что появится.
Исходный код для этого задания:
kod = "M1-2024" print(kod[3:])Подсказка: Срез [3:] берёт символы с индекса 3 и до конца.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
s = "temp=25;temp=30" print(s.count("temp"))Подсказка: .count считает, сколько раз кусочек встречается в строке.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши то, что появится.
Исходный код для этого задания:
stroka = "temp=25" chasti = stroka.split("=") print(chasti[1])Подсказка: split(«=») разбивает строку на список по знаку =. chasti[1] — вторая часть (после =).
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. В переменной kod лежит строка маленькими буквами. Напиши команду print, которая выведет её ЗАГЛАВНЫМИ буквами.
Исходный код для этого задания:
kod = "m1-2024" # напиши ниже команду print, которая выведет kod заглавными буквамиПодсказка: Метод .upper() делает буквы заглавными. Шаблон: print(kod.upper()).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. В строке s точку с запятой нужно заменить на пробел. Напиши команду print, которая выведет результат замены.
Исходный код для этого задания:
s = "temp=25;rpm=1500" # напиши ниже команду print, которая заменит ; на пробел и выведет результатПодсказка: Метод .replace(«что», «на что»). Шаблон: print(s.replace(«;», » «)).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. В строке s посчитай, сколько раз встречается знак «;», и выведи это число.
Исходный код для этого задания:
s = "a=1;b=2;c=3" # напиши ниже команду print, которая посчитает знаки ; и выведет числоПодсказка: Метод .count(«символ»). Шаблон: print(s.count(«;»)).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Строку телеметрии нужно разбить по знаку «=» на список частей. Напиши строку, которая разобьёт stroka по «=» и положит результат в переменную chasti.
Исходный код для этого задания:
stroka = "temp=25" # напиши ниже строку: разбей stroka по знаку = и положи в chastiПодсказка: Метод .split(«разделитель») возвращает список. Шаблон: chasti = stroka.split(«=»).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши то, что появится.
Исходный код для этого задания:
x = 9.806 print(f"{x:.2f}")Подсказка: Формат {x:.2f} оставляет два знака после запятой и округляет.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Программа должна посчитать сумму температуры и прибавки, но падает с ошибкой. В чём причина?
Исходный код для этого задания:
stroka = "temp=25" chasti = stroka.split("=") znachenie = chasti[1] print(znachenie + 5)Подсказка: Вспомни: части после split — это текст (str). Что нужно сделать перед сложением с числом?
Онлайн-проверка ответа появится позже
Задание. Напиши программу целиком (около 6-7 строк) — парсер телеметрии. Дана строка telemetriya = «temp=25;rpm=1500». Разбей её по «;» на части, из каждой части достань число после «=» (через split и int) и выведи двумя строками: температуру и обороты. Используй имена temp и rpm.
Исходный код для этого задания:
telemetriya = "temp=25;rpm=1500" # 1) chasti = telemetriya.split(";") # 2) temp = int(chasti[0].split("=")[1]) # 3) rpm = int(chasti[1].split("=")[1]) # 4) print температуры и print оборотовПодсказка: Сначала chasti = telemetriya.split(«;»). Потом temp = int(chasti[0].split(«=»)[1]) и rpm = int(chasti[1].split(«=»)[1]). В конце два print.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Что дальше
Теперь ты умеешь резать строки срезами, искать и заменять методами и разбирать телеметрию через split. На следующем занятии научимся выносить повторяющийся код в функции и подключать готовые модули — math и random.
Итог: Теперь ты умеешь резать строки срезами, искать и заменять методами и разбирать телеметрию через
split. На следующем занятии научимся выносить повторяющийся код в функции и подключать готовые модули — math и random.
