Строка
Это понятие впервые встречается на программе «Электроника, программирование и инженерная практика» — примерно 13-14 лет (7-8 класс).
Текст в программе: буквы, цифры и знаки, взятые в кавычки. Программа хранит символы по порядку и может их соединять, считать и сравнивать.
Бусы: каждая бусина — один символ; они нанизаны по порядку, их можно пересчитать, а нитку — разрезать и собрать заново.
Собрать в Scratch фразу блоком «объединить»: «Привет, » и своё имя; блоком «длина» посчитать, сколько символов в имени.
Тип данных для текста: последовательность символов в кавычках — буквы, цифры, пробелы, знаки. У строки есть длина, каждый символ стоит на своём номере, и их можно перебирать, как элементы списка. «10» — это не число десять, а два символа: чтобы посчитать, строку сначала преобразуют в число.
Сделать в Scratch «эхо»: спросить имя, ответить объединением «Привет, » и ответа, вывести длину имени и его первую букву блоком «буква 1 из…».
Последовательность символов; в памяти хранятся их коды: в ASCII символ занимает 1 байт, в UTF-8 — от 1 до 4, поэтому длина в символах не равна размеру в байтах. Операции: соединение (конкатенация), срез, поиск, сравнение по кодам. В Python строки неизменяемы — любая «правка» создаёт новую строку. Краевые случаи: пустая строка «» — не то же, что пробел; при текстовом сравнении «10» < «9».
Сравнить в Python len('привет') и len('привет'.encode('utf-8')); отсортировать ['100', '9', '25'] как строки и как числа и объяснить порядок.
Частое заблуждение
«Строка «5» и число 5 — одно и то же». Нет: 5 — число, «5» — символ текста; текст складывается склейкой («5» и «5» дают «55»), а числа — сложением (10).