Поиск по сайту:

Строка Python в Int, Int в строку


В этом уроке мы узнаем, как преобразовать строку python в int и int в String в python. В нашем предыдущем уроке мы узнали о функции добавления списка Python.

Строка Python в Int

Если вы читали наши предыдущие руководства, то могли заметить, что когда-то мы использовали это преобразование. На самом деле, это необходимо во многих случаях. Например, вы читаете какие-то данные из файла, тогда они будут в формате String и вам придется преобразовать String в int. Теперь перейдем непосредственно к коду. Если вы хотите преобразовать число, представленное в строке, в целое число, вы должны использовать для этого функцию int(). См. следующий пример:

num = '123'  # string data

# print the type

print('Type of num is :', type(num))

# convert using int()

num = int(num)

# print the type again

print('Now, type of num is :', type(num))

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

Type of num is : <class 'str'>
Now, type of num is : <class 'int'>

Преобразование строки в int из другой базы

Если строка, которую вы хотите преобразовать в int, принадлежит к другой системе счисления, отличной от базы 10, вы можете указать базу для преобразования. Но помните, что выходное целое число всегда находится в базе 10. Еще одна вещь, которую вы должны помнить, это то, что данная база должна быть в диапазоне от 2 до 36. См. следующий пример, чтобы понять преобразование строки в int с базовым аргументом.

num = '123'
# print the original string
print('The original string :', num)

# considering '123' be in base 10, convert it to base 10

print('Base 10 to base 10:', int(num))

# considering '123' be in base 8, convert it to base 10

print('Base 8 to base 10 :', int(num, base=8))

# considering '123' be in base 6, convert it to base 10

print('Base 6 to base 10 :', int(num, base=6))

ValueError при преобразовании String в int

При преобразовании из строки в целое число может возникнуть исключение ValueError. Это исключение возникает, если строка, которую вы хотите преобразовать, не представляет никаких чисел. Предположим, вы хотите преобразовать шестнадцатеричное число в целое. Но вы не передали аргумент base=16 в функцию int(). Это вызовет исключение ValueError, если есть какая-либо цифра, не принадлежащая десятичной системе счисления. Следующий пример иллюстрирует это исключение при преобразовании строки в int.

"""
    Scenario 1: The interpreter will not raise any exception but you get wrong data
"""
num = '12'  # this is a hexadecimal value

# the variable is considered as decimal value during conversion
print('The value is :', int(num))

# the variable is considered as hexadecimal value during conversion
print('Actual value is :', int(num, base=16))

"""
    Scenario 2: The interpreter will raise ValueError exception
"""

num = '1e'  # this is a hexadecimal value

# the variable is considered as hexadecimal value during conversion
print('Actual value of \'1e\' is :', int(num, base=16))

# the variable is considered as decimal value during conversion
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 в строку

Преобразование int в строку не требует усилий или проверки. Вы просто используете функцию 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 String в int и преобразования int в строку. Ссылка: Официальный документ Python