Integer
– целые числа. Другими словами — числа, у которых нет дробной составляющей. Для хранения целого числа программист Python использует два типа данных: int
и str
. Каждый из них предоставляет гибкость при работе с целыми числами при различных обстоятельствах. Из этой Python статьи вы узнаете, как преобразовать строку в int
, а также научитесь конвертировать int
в строку.
К концу прочтения вы поймёте:
- Как хранить целые числа, используя
str
иint
. - Как преобразовать Python
string
вint
. - Как конвертировать Python
int
в строку.
Начнём!
Представление целых чисел в Python
Целое число сохраняют с использованием разных типов. Язык программирования Python предлагает два возможных типа данных для представления целого числа:
str
int
Например, вы записываете целое число, используя строковый литерал:
Здесь Python понимает, что вы хотите сохранить целое число 110
в виде строки или используете целочисленный тип данных:
Важно учитывать, что конкретно подразумевается под "110"
и 110
в приведённых выше примерах. Для человека, который использовал десятичную систему счисления всю жизнь очевидно, что речь идёт о числе сто десять. Однако другие системы счисления, такие, как двоичная и шестнадцатеричная, используют иные основания для представления целого числа.
Например, вы представляете число сто десять в двоичном и шестнадцатеричном виде как 1101110 и 6e соответственно.
А также записываете целые числа в других системах счисления в Python с помощью типов данных str
и int:
Обратите внимание, что binary
и hexadecimal
используют префиксы для идентификации системы счисления. Все целочисленные префиксы имеют вид 0?
, где ?
заменяется символом, который относится к системе счисления:
- b: двоичная (основание 2);
- o: восьмеричная (основание 8);
- d: десятичная (основание 10);
- x: шестнадцатеричная (основание 16).
Техническая подробность: префикс не требуется ни в int
, ни в строковом представлении, когда он определён логически.
int
предполагает, что целочисленный литерал – десятичный:
У строкового представления целого числа больше гибкости, потому что строка содержит произвольные текстовые данные:
Каждая из этих строк представляет одно и то же целое число.
Теперь, когда мы разобрались с базовым представлением целых чисел с помощью str
и int
, вы узнаете, как преобразовать Python строку в int
.
Преобразование строки Python в int
Если вы записали десятичное целое число в виде строки и хотите преобразовать строку Python в int
, то передайте строку в метод int()
, который возвращает десятичное целое число:
По умолчанию int()
предполагает, что строковый аргумент представляет собой десятичное целое число. Однако если вы передадите шестнадцатеричную строку в int()
, то увидите ValueError
:
Сообщение об ошибке говорит, что строка – недопустимое десятичное целое число.
Примечание:
Важно понимать разницу между двумя типами неудачных результатов при передаче строки в int()
:
- Синтаксическая ошибка
ValueError
возникает, когдаint()
не знает, как интерпретировать строку с использованием предоставленного основания (10 по умолчанию). - Логическая ошибка
int()
интерпретирует строку, но не так, как то ожидалось.
Вот пример логической ошибки:
В этом примере вы подразумевали, что результатом будет 210 – десятичное представление двоичной строки. К сожалению, поскольку точное поведение не было указано, int()
предположил, что строка – десятичное целое число.
Гарантия нужного поведения – постоянно определять строковые представления с использованием явных оснований:
Здесь получаете ValueError
, потому что int()
не способен интерпретировать двоичную строку как десятичное целое число.
Когда передаёте строку int()
, указывайте систему счисления, которую используете для представления целого числа. Чтобы задать систему счисления применяется base
:
Теперь int()
понимает, что вы передаёте шестнадцатеричную строку и ожидаете десятичное целое число.
Техническая подробность: аргумент base
не ограничивается 2, 8, 10 и 16:
Отлично! Теперь, когда тонкости преобразования строки Python в int
освоены, вы научитесь выполнять обратную операцию.
Преобразование Python int в строку
Для преобразования int
в строку Python разработчик использует str()
:
По умолчанию str()
ведёт себя, как int()
: приводит результат к десятичному представлению:
В этом примере str()
блеснул "умом": интерпретировал двоичный литерал и преобразовал его в десятичную строку.
Если вы хотите, чтобы строка представляла целое число в другой системе счисления, то используйте форматированную строку (f-строку в Python 3.6+) и параметр, который задаёт основание:
str
– гибкий способ представления целого числа в различных системах счисления.
Заключение
Поздравляем! Вы достаточно много узнали о целых числах и о том, как представлять и преобразовывать их с помощью типов данных Python.
В этом уроке мы изучили:
- Как использовать
str
иint
для хранения целых чисел. - Как указать явную систему счисления для целочисленного представления.
- Как преобразовать строку Python в
int
. - Как преобразовать Python
int
в строку.
Теперь, когда вы усвоили материал оstr
и int
, читайте больше о представлении числовых типов с использованием float(), hex(), oct() и bin()!
Комментарии