Как конвертировать строки в целые числа в Python

Все типы данных в Python, включая целые числа и строки, являются объектами. Часто при написании кода на Python вам необходимо преобразовать один тип данных в другой. Например, чтобы выполнить математическую операцию с числом, представленным в виде строки, его необходимо преобразовать в целое число.
В этой статье мы покажем вам, как преобразовать строку Python в целое число.
Функция int() в Python
Встроенная функция int() возвращает десятичный целочисленный объект из заданного числа или строки. Он принимает следующую форму:
int(x, base=10)
Функция принимает два аргумента:
- x — Строка или число для преобразования в целое число.
- base — Он представляет собой систему счисления первого аргумента. Его значение может быть 0 и 2–36. Если база не указана, по умолчанию используется 10 (десятичное целое число).
Обычно целые числа выражаются в шестнадцатеричном (основание 16), десятичном (основание 10), восьмеричном (основание 8) или двоичном (основание 2) обозначении.
Если данный аргумент не может быть представлен как целое число, функция выдаст исключение ValueError.
Преобразование строки Python в целое число
В Python «строка» — это список символов, который объявляется с помощью одинарных (‘), двойных («) или тройных кавычек («»»).
Если переменная, которая содержит только числа, объявляется с помощью кавычек, ее тип данных устанавливается на String. Рассмотрим следующий пример:
days = "23" type(days)
Функция type() показывает нам , что daysэто объект типа String.
<type 'str'>
Давайте попробуем выполнить математическую операцию над переменной:
print(days+5)
Python выдаст ошибку исключения TypeError, потому что мы не можем выполнить сложное вычисление со строкой и целым числом:
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects
Чтобы преобразовать строковое представление десятичного целого числа int, передайте строку в функцию int(), которая возвращает десятичное целое число:
days = "23"days_int = int(days)type(days_int)
<type 'int'>
Если вы сейчас попытаетесь сделать математику, операция суммирования будет выполнена успешно:
print(days_int+5)
28
Если число включает запятые, отмечая тысячи, миллионы и т. д., вам необходимо удалить запятые перед передачей числа в функцию int():
total = "1,000,000"int(total.replace(",", ""))
1000000
При преобразовании строк, представляющих целые числа в разных системах счисления, убедитесь, что вы используете правильные значения base.
Например, в шестнадцатеричной системе число 54732 представляется как D5CF. Чтобы преобразовать его в десятичное целое, вам нужно использовать основание 16:
int("D5CF", 16)
54735
Если вы передадите D5CFстроку в функцию int() без установки базы, она выдаст исключение ValueError:
int("D5CF")
Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: 'D5CF'
Заключение
В Python вы можете преобразовать строку в целое число, используя функцию int().
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.