Строка (
str) – упорядоченная последовательность символов. У каждого символа есть своё место в ней – индекс.
Слово «упорядоченная» здесь не украшение: порядок – часть значения. 'кот' и 'ток' состоят из одних и тех же букв, но это две разные строки, и Python считает их неравными.
Длину строки даёт len():
s = 'Привет'
print(len(s)) # 6 – символов в строке
print(len(s[0])) # 1 – символ это тоже строка
Отдельного типа «символ» в Python нет: то, что возвращает s[0], – строка длины 1, у неё и type() даст str, и len() – единицу. В C и Java для одиночного символа есть свой тип char, и там 'a' и "a" – вещи принципиально разные; в Python кавычки взаимозаменяемы, и отдельного типа под один символ не завелось. Практическое следствие: функция ord() из урока 7.3 принимает строку ровно из одного символа – ни пустую, ни из двух букв.
Числовые коды символов здесь больше не понадобятся, но если нужно освежить: ord() и chr() разобраны в уроке 7.3, а устройство кодовых таблиц – почему буквы и цифры лежат подряд и почему регистр отличается на 32 – в уроке 7.2.
Строка итерируема: её можно поставить прямо в заголовок for, и цикл выдаст символы по одному, слева направо. Если нужен ещё и номер позиции, берут range(len(s)) и обращаются к s[i] внутри цикла.