Преобразование строки Python в целое число, целое число в строку

В этом учебнике мы узнаем, как преобразовать строку 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'>
Python String To 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))

Вывод следующего кода будет

Python Convert String To Int With Base

Ошибка значения при преобразовании строки в целое число

При преобразовании строки в целое число может возникнуть исключение 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'
Python String To Int ValueError

Преобразование 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 Int To String Conversion

Это все, что касается преобразования строки Python в целое число и обратного преобразования. Ссылка: Официальная документация Python

Source:
https://www.digitalocean.com/community/tutorials/python-string-to-int-int-to-string