Как преобразовать и перевести строку (string) в целое число (int) в Python

В этом руководстве мы изучим способы преобразования строки в целое число в Python.

Давайте посмотрим на пример, прежде чем продолжить:

 
a='Learning Python is fun' 
b= 20 
#Displaying the type of a and b 
print(type(a)) 
print(type(b)) 

Вывод:

<class 'str'> 
<class 'int'> 

В приведенном выше примере мы объявили переменные ‘a’ и ‘b’ со строковым и целочисленным значением соответственно.

Мы можем проверить их типы данных с помощью type().

Здесь возникает вопрос, зачем нам преобразовывать строку в целое число.

Следующая программа иллюстрирует то же самое:

 
value_a = "100" 
value_b = "26" 
res = value_a * value_b 
print("The multiplication of val_a and val_b gives: ",res) 

Вывод:

res = value_a * value_b 
 
TypeError: can't multiply sequence by non-int of type 'str' 

Поскольку сгенерировалась ошибка, это причина того, что мы должны преобразовать строковые значения в целые числа, чтобы мы могли продолжить операцию.

Пришло время взглянуть на первую программу, демонстрирующую преобразование строки в целое число.

 
a = '7' 
print(type(a)) 
#using int() 
conv_a=int(a) 
print(type(conv_a)) 
conv_a = conv_a+10 
print(conv_a) 
print(type(conv_a)) 

Вывод:

<class 'str'> 
<class 'int'> 
17 
<class 'int'> 

Объяснение:

  1. Первый шаг – объявить переменную a со строковым значением.
  2. После этого мы проверили ее тип данных с помощью type().
  3. Для преобразования строки в целое число мы использовали int(), а затем проверили ее тип.
  4. Теперь мы поработали с переменной «а», добавив к ней 10.
  5. Наконец, на выходе отображается результирующее значение.

Подход 2.

В следующем примере мы применим косвенный подход к преобразованию строки в целое число.

Следующая программа показывает, как это можно сделать:

 
value_a = "100" 
value_b = "26" 
print(type(value_a)) 
print(type(value_b)) 
#converting to float 
value_a=float(value_a) 
#converting to int 
value_b=int(value_b) 
res_sum=value_a+value_b 
print("The sum of value_a and value_b is ",res_sum) 

Вывод:

<class 'str'> 
<class 'str'> 
The sum of value_a and value_b is  126. 0 

Объяснение:

  1. Первый шаг – объявить две переменные value_a и value_b со строковым значением.
  2. После этого проверили их тип данных с помощью type().
  3. Для преобразования строки в целое число мы использовали float() для преобразования строки в значение с плавающей запятой.
  4. На следующем шаге преобразуем строковое значение value_b в целое число.
  5. Теперь мы сложили value_a и value_b и распечатали их сумму.
  6. Наконец, на выходе отображается результирующее значение.

Подход 3.

Здесь мы увидим, как мы можем преобразовать число, представленное в виде строкового значения, в основание 10, когда оно находится на разных основаниях.

 
num_value = '234' 
# printing the value of num_value 
print('The value of num_value is :', num_value) 
#converting 234 to base 10 assuming it is in base 10 
print('The value of num_value from base 10 to base 10 is:', int(num_value)) 
#converting 234 to base 10 assuming it is in base 8 
print('The value of num_value from base 8 to base 10 is :', int(num_value, base=8)) 
#converting 234 to base 10 assuming it is in base 6 
print('The value of num_value base 6 to base 10 is :', int(num_value, base=6)) 

Вывод:

The value of num_value is: 234 
The value of num_value from base 10 to base 10 is: 234 
The value of num_value from base 8 to base 10 is: 156 
The value of num_value base 6 to base 10 is: 94 

Объяснение:

  1. На первом этапе мы объявили значение переменной.
  2. Поскольку вывод всегда будет в базе 10, мы предоставили различные базовые значения внутри int().
  3. В качестве базовых значений мы взяли 10, 8 и 6.
  4. При выполнении программы отображается ожидаемый результат.

В этом руководстве мы узнали о различных способах преобразования строки в значение типа int.

Михаил Русаков

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Еще для изучения:

Преобразование типов данных в Go