Символы, ord и chr: полезные приёмы
Преобразуйте буквы в числа и обратно
«Символы, ord и chr: полезные приёмы» — бесплатный урок Coding Interview Prep на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Coding Interview Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Coding Interview Prep содержит 4 уроков всего.
Буквы — это числа
Каждый символ, который считывает программа, внутри хранится как число. Знание его кодовой точки позволяет выполнять арифметические операции с буквами. 🔢
Знакомство с ord()
Функция ord() превращает один символ в его целочисленную кодовую точку. Это мост от букв к арифметике.
print(ord('A')) # 65
print(ord('a')) # 97Знакомство с chr()
Функция chr() выполняет обратное преобразование: получает число и возвращает соответствующий символ. Вместе эти функции образуют удобное преобразование туда и обратно.
print(chr(65)) # 'A'
print(chr(97)) # 'a'Буквы идут подряд
Главный приём: кодовые точки букв a–z идут подряд, как и кодовые точки A–Z. Поэтому индексировать буквы можно простым вычитанием.
Отображение буквы на диапазон 0–25
Вычтите код базовой буквы, чтобы получить удобный индекс с отсчётом от 0. Так букву можно превратить в позицию массива для подсчёта.
idx = ord('c') - ord('a')
print(idx) # 2Преобразование индекса обратно в букву
Для обратного преобразования прибавьте индекс к базовому значению и вызовите chr(). Теперь позиции 0 и 25 превращаются соответственно в 'a' и 'z'.
ch = chr(ord('a') + 2)
print(ch) # 'c'Сдвиг буквы: шифр Цезаря
Чтобы сдвинуть букву вперёд, прибавьте величину сдвига, а затем примените остаток от деления по модулю 26. На этом основаны задачи о шифре Цезаря.
shifted = chr((ord('y') - ord('a') + 3) % 26 + ord('a'))
print(shifted) # 'b'Заглавные и строчные отличаются на 32
Из-за устройства кодировки каждая заглавная буква находится ровно на 32 позиции ниже своей строчной пары. При необходимости регистр можно изменить одной арифметикой.
print(ord('a') - ord('A')) # 32Цифры тоже являются символами
Символ '7' — это не число 7. Вычтите ord('0'), чтобы преобразовать символ цифры в его настоящее числовое значение.
d = ord('7') - ord('0')
print(d) # 7Быстрые проверки букв
Для проверок «да» или «нет» методы вроде isalpha() и isdigit() удобнее, чем ручное сравнение кодовых точек.
print('x'.isalpha()) # True
print('5'.isdigit()) # TrueПочему это важно в CP
Отображение букв на индексы позволяет использовать небольшой массив из 26 ячеек вместо словаря. Это быстрее и часто применяется в задачах о строках.
Быстрая проверка
Небольшой вопрос об арифметике с буквами.
Повторение
Вы узнали, что ord и chr преобразуют буквы в числа и обратно, а последовательные кодовые точки позволяют простой арифметикой индексировать, сдвигать и проверять символы. 🎉
Часто задаваемые вопросы
Урок «Символы, ord и chr: полезные приёмы» бесплатный?
Да — полный текст урока «Символы, ord и chr: полезные приёмы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Coding Interview Prep, подпишись на CoddyKit PRO. Курс Coding Interview Prep содержит 4 уроков всего.
Чему я научусь в уроке «Символы, ord и chr: полезные приёмы»?
Преобразуйте буквы в числа и обратно Ты практикуешь Coding Interview Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Coding Interview Prep?
Предыдущий опыт не требуется. Coding Interview Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Символы, ord и chr: полезные приёмы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Coding Interview Prep?
Да. Каждый урок Coding Interview Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Символы, ord и chr: полезные приёмы
- Подсчёт букв с таблицей частот
- Правильная проверка палиндромов
- Разделение, очистка и повторное объединение слов