В этом учебнике мы узнаем, как преобразовать строку Python в int и int в строку в Python. В предыдущем учебнике мы изучили функцию добавления списка Python.
Строка Python в Int
Если вы читали наши предыдущие учебники, то могли заметить, что иногда мы использовали это преобразование. На самом деле, это необходимо во многих случаях. Например, если вы считываете какие-то данные из файла, то они будут в формате строки, и вам придется преобразовать строку в int. Теперь мы перейдем прямо к коду. Если вы хотите преобразовать число, представленное в виде строки, в int, вам нужно использовать функцию int()
. Смотрите следующий пример:
num = '123' # string data
# распечатаем тип
print('Type of num is :', type(num))
# преобразуем с помощью int()
num = int(num)
# распечатаем тип again
print('Now, type of num is :', type(num))
Результат выполнения следующего кода будет
Type of num is : <class 'str'>
Now, type of num is : <class 'int'>

Преобразование строки в int из различных оснований
Если строка, которую вы хотите преобразовать в целое число, принадлежит к числовой системе счисления отличной от десятичной, вы можете указать базу для преобразования. Но помните, что выходное целое число всегда будет в десятичной системе счисления. Еще одна вещь, которую вам нужно помнить, это то, что заданная база должна быть в диапазоне от 2 до 36. Рассмотрим следующий пример, чтобы понять преобразование строки в целое число с аргументом базы.
num = '123'
# выведите исходную строку
print('The original string :', num)
# предположим, что '123' в десятичной системе счисления, преобразуем ее в десятичную систему счисления
print('Base 10 to base 10:', int(num))
# предположим, что '123' в восьмеричной системе счисления, преобразуем ее в десятичную систему счисления
print('Base 8 to base 10 :', int(num, base=8))
# предположим, что '123' в шестеричной системе счисления, преобразуем ее в десятичную систему счисления
print('Base 6 to base 10 :', int(num, base=6))
Вывод следующего кода будет

Ошибка значения при преобразовании строки в целое число
При преобразовании строки в целое число может возникнуть исключение ValueError
. Это исключение возникает, если строка, которую вы хотите преобразовать, не представляет собой никаких чисел. Предположим, вы хотите преобразовать шестнадцатеричное число в целое число. Но вы не передали аргумент base=16 в функцию int(). Это вызовет исключение ValueError
, если есть какая-либо цифра, которая не принадлежит десятичной системе счисления. В следующем примере будет показано это исключение при преобразовании строки в целое число.
"""
Scenario 1: The interpreter will not raise any exception but you get wrong data
"""
num = '12' # this is a hexadecimal value
# переменная рассматривается как десятичное значение во время преобразования
print('The value is :', int(num))
# переменная рассматривается как шестнадцатеричное значение во время преобразования
print('Actual value is :', int(num, base=16))
"""
Scenario 2: The interpreter will raise ValueError exception
"""
num = '1e' # this is a hexadecimal value
# переменная рассматривается как шестнадцатеричное значение во время преобразования
print('Actual value of \'1e\' is :', int(num, base=16))
# переменная рассматривается как десятичное значение во время преобразования
print('The value is :', int(num)) # this will raise exception
Выходной код выше будет следующим:
The value is : 12
Actual value is : 18
Actual value of '1e' is : 30
Traceback (most recent call last):
File "/home/imtiaz/Desktop/str2int_exception.py", line 22, in
print('The value is :', int(num)) # this will raise exception
ValueError: invalid literal for int() with base 10: '1e'

Преобразование int в строку Python
Преобразование целого числа в строку не требует усилий или проверок. Просто используйте функцию str()
для выполнения преобразования. Смотрите следующий пример.
hexadecimalValue = 0x1eff
print('Type of hexadecimalValue :', type(hexadecimalValue))
hexadecimalValue = str(hexadecimalValue)
print('Type of hexadecimalValue now :', type(hexadecimalValue))
Выходной код следующего примера будет:
Type of hexadecimalValue : <class 'int'>
Type of hexadecimalValue now : <class 'str'>

Это все, что касается преобразования строки Python в целое число и обратного преобразования. Ссылка: Официальная документация Python
Source:
https://www.digitalocean.com/community/tutorials/python-string-to-int-int-to-string