Осваиваем Python: преобразование строки в число на конкретных примерах
Иногда требуется преобразовать строку в целое число или в число с плавающей точкой для осуществления определённых операций в Python.
Если вы попробуете выполнить то или иное действие со строкой в виде чисел, то получите ошибку.
Этот код приведёт к ошибке :
В Python можно использовать функции int и float для преобразования строки в целое число или число с плавающей точкой до осуществления каких-либо операций.
Использование функции int() для преобразования строки в целое число
Рассмотрим следующий код:
Будет выведен новый список, состоящий из целых чисел, полученных из строк.
Преобразование списка строк в список чисел с плавающей точкой
Аналогичным образом можно использовать float вместо int для преобразования списка, содержащего строки из целых чисел. Рассмотрим пример:
Код для преобразования элементов списка в числа с плавающей точкой:
Пример преобразования строки с запятыми в число
Ну а как насчёт строки наподобие “5,000,000”? Если попытаетесь преобразовать ее, используя функции int() или float() , то получите ошибку.
Решением будет использование import locale . Например:
Но это может вызвать проблемы в остальных локалях. Другое решение заключается в том, чтобы заменить запятые пустыми строками, то есть“”, а затем использовать функцию int.
В результате получаем целое значение. Это же решение можно применить для конвертации строки в число с плавающей точкой.
Преобразование строки в число для расчёта високосного года -пример
Пользовательский ввод в Python- программах воспринимается как строка. В следующем примере пользователя просят ввести год. После ввода значения программа сообщает, високосный это год или нет.
Для этого введённое значение сначала преобразуется в целое число, а затем используется формула расчёта високосного года.
Вводимая строка сразу преобразуется в целое число, а затем используется для расчёта.
Как преобразовать целое число в строку?
Для преобразования целых чисел в строки в Python можно использовать функцию str() . Функция str() принимает объект, который может быть типа int , float , double и т.п.
Рассмотрим пример преобразования переменной типа int в строку, которая затем используется как строка для конкатенации:
Если бы целочисленная переменная была использована без функции str(), возникла бы ошибка TypeError.
Пожалуйста, оставляйте ваши комментарии по текущей теме статьи. Мы очень благодарим вас за ваши комментарии, лайки, дизлайки, подписки, отклики!
Дайте знать, что вы думаете по данной теме статьи в комментариях. За комментарии, лайки, отклики, подписки, дизлайки низкий вам поклон!
Сергей Бензенко автор-переводчик статьи « 5 examples to Convert a Python string to int and float »
Перевод строки в числа побуквенно
Откуда эти все значения: 65,90,64. с которыми происходит сравнение.
![]()
Коды заглавных букв A-Z = (65-90)
Коды строчных букв a-z = (97-122)
Соответственно если буква заглавная то ее номер по порядку=ord(«Заглавная буква»)-64
Пример для «A»: ord(«A»)=65. Соответственно 65-64=1.
Тоже самое для строчных номер строчной буквы по порядку = ord(«Строчная буква»)-96
Пример для «а»: ord(«а»)=97. Соответственно 97-96=1.
Можно думать про это как про то, что номера всех заглавных букв смещенны относительно их порядка в алфавите на 64 симлова
А номера строчных на 96
Функции chr() и ord() в Python
Встроенная функция Python chr() используется для преобразования целого числа в символ, а функция ord() используется для обратного, т. е. преобразования символа в целое число.
Давайте кратко рассмотрим обе эти функции и поймем, как их можно использовать.
Функция chr()
Принимает целое число i и преобразует его в символ c , поэтому возвращает строку символов.
Вот пример, демонстрирующий то же самое:
Допустимый диапазон для аргумента — от 0 до 1,114 111 (0x10FFFF в шестнадцатеричном формате). ValueError будет ValueError , если целое число i находится за пределами этого диапазона.
Давайте проверим это на некоторых примерах
Это вызовет ValueError .
Функция ord()
Функция ord() принимает строковый аргумент из одного символа Юникода и возвращает его целочисленное значение кодовой точки Юникода. Делает наоборот chr() .
Принимает один символ Юникода (строка длиной 1) и возвращает целое число, поэтому формат следующий:
Чтобы убедиться, что он работает наоборот, чем chr() , давайте протестируем функцию на нескольких примерах.
Это вызывает TypeError если длина входной строки не равна единице.
Передача шестнадцатеричных данных
Мы также можем передавать целые числа, представленные в других общих основаниях, таких как шестнадцатеричный формат (основание 16), в chr() и ord().
В Python мы можем использовать шестнадцатеричный код, добавив к целому числу префикс 0x , если он находится в диапазоне 32/64 бит для целых значений.
Мы передаем целое число 18 в шестнадцатеричном формате в chr() , которая возвращает шестнадцатеричное значение 0x12 . Мы передаем это в chr() и используем ord() чтобы вернуть наше целое число.
Обратите внимание, что мы также можем получить целое число с помощью int() , поскольку односимвольная строка также является строкой, которая может быть допустимым параметром для указанной выше функции.