Работа мечты в один клик 💼

💭Мечтаешь работать в Сбере, но не хочешь проходить десять кругов HR-собеседований? Теперь это проще, чем когда-либо!
💡AI-интервью за 15 минут – и ты уже на шаг ближе к своей новой работе.
Как получить оффер? 📌 Зарегистрируйся 📌 Пройди AI-интервью 📌 Получи обратную связь сразу же!
HR больше не тянут время – рекрутеры свяжутся с тобой в течение двух дней! 🚀
Реклама. ПАО СБЕРБАНК, ИНН 7707083893. Erid 2VtzquscAwp
Integer
– целые числа. Другими словами — числа, у которых нет дробной составляющей. Для хранения целого числа программист Python использует два типа данных: int
и str
. Каждый из них предоставляет гибкость при работе с целыми числами при различных обстоятельствах. Из этой Python статьи вы узнаете, как преобразовать строку в int
, а также научитесь конвертировать int
в строку.
К концу прочтения вы поймёте:
- Как хранить целые числа, используя
str
иint
. - Как преобразовать Python
string
вint
. - Как конвертировать Python
int
в строку.
Начнём!
Представление целых чисел в Python
Целое число сохраняют с использованием разных типов. Язык программирования Python предлагает два возможных типа данных для представления целого числа:
str
int
Например, вы записываете целое число, используя строковый литерал:
>>> s = "110"
Здесь Python понимает, что вы хотите сохранить целое число 110
в виде строки или используете целочисленный тип данных:
>>> i = 110
Важно учитывать, что конкретно подразумевается под "110"
и 110
в приведённых выше примерах. Для человека, который использовал десятичную систему счисления всю жизнь очевидно, что речь идёт о числе сто десять. Однако другие системы счисления, такие, как двоичная и шестнадцатеричная, используют иные основания для представления целого числа.
Например, вы представляете число сто десять в двоичном и шестнадцатеричном виде как 1101110 и 6e соответственно.
А также записываете целые числа в других системах счисления в Python с помощью типов данных str
и int:
>>> binary = 0b1010
>>> hexadecimal = "0xa"
Обратите внимание, что binary
и hexadecimal
используют префиксы для идентификации системы счисления. Все целочисленные префиксы имеют вид 0?
, где ?
заменяется символом, который относится к системе счисления:
- b: двоичная (основание 2);
- o: восьмеричная (основание 8);
- d: десятичная (основание 10);
- x: шестнадцатеричная (основание 16).
Техническая подробность: префикс не требуется ни в int
, ни в строковом представлении, когда он определён логически.
int
предполагает, что целочисленный литерал – десятичный:
>>> decimal = 303
>>> hexadecimal_with_prefix = 0x12F
>>> hexadecimal_no_prefix = 12F
File "<stdin>", line 1
hexadecimal_no_prefix = 12F
^
SyntaxError: invalid syntax
У строкового представления целого числа больше гибкости, потому что строка содержит произвольные текстовые данные:
>>> decimal = "303"
>>> hexadecimal_with_prefix = "0x12F"
>>> hexadecimal_no_prefix = "12F"
Каждая из этих строк представляет одно и то же целое число.
Теперь, когда мы разобрались с базовым представлением целых чисел с помощью str
и int
, вы узнаете, как преобразовать Python строку в int
.
Преобразование строки Python в int
Если вы записали десятичное целое число в виде строки и хотите преобразовать строку Python в int
, то передайте строку в метод int()
, который возвращает десятичное целое число:
>>> int("10")
10
>>> type(int("10"))
<class 'int'>
По умолчанию int()
предполагает, что строковый аргумент представляет собой десятичное целое число. Однако если вы передадите шестнадцатеричную строку в int()
, то увидите ValueError
:
>>> int("0x12F")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '0x12F'
Сообщение об ошибке говорит, что строка – недопустимое десятичное целое число.
Примечание:
Важно понимать разницу между двумя типами неудачных результатов при передаче строки в int()
:
- Синтаксическая ошибка
ValueError
возникает, когдаint()
не знает, как интерпретировать строку с использованием предоставленного основания (10 по умолчанию). - Логическая ошибка
int()
интерпретирует строку, но не так, как то ожидалось.
Вот пример логической ошибки:
>>> binary = "11010010"
>>> int(binary) # Using the default base of 10, instead of 2
11010010
В этом примере вы подразумевали, что результатом будет 210 – десятичное представление двоичной строки. К сожалению, поскольку точное поведение не было указано, int()
предположил, что строка – десятичное целое число.
Гарантия нужного поведения – постоянно определять строковые представления с использованием явных оснований:
>>> int("0b11010010")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '0b11010010'
Здесь получаете ValueError
, потому что int()
не способен интерпретировать двоичную строку как десятичное целое число.
Когда передаёте строку int()
, указывайте систему счисления, которую используете для представления целого числа. Чтобы задать систему счисления применяется base
:
>>> int("0x12F", base=16)
303
Теперь int()
понимает, что вы передаёте шестнадцатеричную строку и ожидаете десятичное целое число.
Техническая подробность: аргумент base
не ограничивается 2, 8, 10 и 16:
>>> int("10", base=3)
3
Отлично! Теперь, когда тонкости преобразования строки Python в int
освоены, вы научитесь выполнять обратную операцию.
Преобразование Python int в строку
Для преобразования int
в строку Python разработчик использует str()
:
>>> str(10)
'10'
>>> type(str(10))
<class 'str'>
По умолчанию str()
ведёт себя, как int()
: приводит результат к десятичному представлению:
>>> str(0b11010010)
'210'
В этом примере str()
блеснул "умом": интерпретировал двоичный литерал и преобразовал его в десятичную строку.
Если вы хотите, чтобы строка представляла целое число в другой системе счисления, то используйте форматированную строку (f-строку в Python 3.6+) и параметр, который задаёт основание:
>>> octal = 0o1073
>>> f"{octal}" # Decimal
'571'
>>> f"{octal:x}" # Hexadecimal
'23b'
>>> f"{octal:b}" # Binary
'1000111011'
str
– гибкий способ представления целого числа в различных системах счисления.
Заключение
Поздравляем! Вы достаточно много узнали о целых числах и о том, как представлять и преобразовывать их с помощью типов данных Python.
В этом уроке мы изучили:
- Как использовать
str
иint
для хранения целых чисел. - Как указать явную систему счисления для целочисленного представления.
- Как преобразовать строку Python в
int
. - Как преобразовать Python
int
в строку.
Теперь, когда вы усвоили материал оstr
и int
, читайте больше о представлении числовых типов с использованием float(), hex(), oct() и bin()!
Комментарии