Как преобразовать в int python
Перейти к содержимому

Как преобразовать в int python

  • автор:

Как преобразовать в int python

В операциях с данными могут применяться значения различных типов. Например, складываются число типа int и число типа float :

a = 2 # число int b = 2.5 # число float c = a + b print(c) # 4.5

В данном случае никакой ошибки не будет. Однако Python не всегда может автоматически производить операции, в которых участвуют данные разных типов. Рассмотрим, какие в данном случае действуют правила.

Неявные преобразования

Оба числа в арифметических операциях должны представлять один и тот же тип. Если же два операнда операции представляют разные типы данных, то Python пытается автоматически выполнить преобразования к одному из типов в соответствии со следующми правилами:

  • Если один из операндов операции представляет комплексное число (тип complex ), то другой операнд также преобразуется к типу complex.
  • Иначе, если один из операндов представляет тип float , то второй операнд также преобразуется к типу float. Собственно так и произошло в примере выше, где значение переменной a было преобразовано в тип float
  • Иначе, оба операнда должны представлять тип int , и в этом случае преобазование не требуется

Явные преобразования

Но в некоторых случаях возникает необходимость вручную выполнить преобразование типов. Например, пусть у нас будет следующий код:

a = "2" b = 3 c = a + b

Мы ожидаем, что «2» + 3 будет равно 5. Однако этот код сгенерирует исключение, так как первое число на самом деле представляет строку. И мы увидим при выполнении кода что-то наподобие:

Traceback (most recent call last): File "/Users/eugene/PycharmProjects/HelloApp/main.py", line 3, in c = a + b TypeError: can only concatenate str (not "int") to str

Для преобразования типов Python предоставляет ряд встроенных функций:

  • int() : преобразует значение в целое число
  • float() : преобразует значение в число с плавающей точкой
  • str() : преобразует значение в строку
int

Так, в предыдущем примере преобазуем строку в число с помощью функции int():

a = "2" b = 3 c = int(a) + b print(c) # 5

Примеры преобразований с помощью int() :

a = int(15) # a = 15 b = int(3.7) # b = 3 c = int("4") # c = 4 e = int(False) # e = 0 f = int(True) # f = 1

Однако если значение не может быть преобразовано, то функция int выдаст ошибку ValueError: invalid literal for int() with base 10 :

b = int("a1c") # Ошибка c = int("4.7") # Ошибка
float

Аналогичным образом действует функция float() , которая преобразует в число с плавающей точкой.

a = "2.7" b = 3 c = float(a) + b print(c) # 5.7

Примеры преобразований с помощью float() :

a = float(15) # a = 15.0 b = float(3.7) # b = 3.7 c = float("4.7") # c = 4.7 d = float("5") # d = 5.0 e = float(False) # e = 0.0 f = float(True) # f = 1.0

Но опять же не все значения могут автоматически преобразованы в float. Так, в следующем случае Python сгенерирует ошибку:

d = float("abc") # Ошибка
str

Функция str() преобразует значение в строку:

a = str(False) # a = "False" b = str(True) # b = "True" c = str(5) # c = "5" d = str(5.7) # d = "5.7"

Функция str() может быть актуальна, например, при добавлении к строке значения другого типа. Например, в следующем случае мы получим ошибку:

age = 22 message = "Age: " + age # Ошибка print(message)

Если число складывается с число, то это стандартная операция сложения чисел. Если строка складывается со строкой, то это операция объединения строк. Но каким образом выполнить операцию сложения по отношение к строке и числу, Python не знает. И если мы в данном случае мы хотим выполнить операцию объединения строк, то число можно привести к строке с помощью функции str() :

age = 22 message = "Age: " + str(age) # Age: 22 print(message)

Приведение string к int

Метод int() позволяет конвертировать строку в целое число.

Функция int() принимает два параметра. Первый — строка, которую нужно преобразовать в число. Второй — система счисления, в которой число должно быть представлено. Второй параметр не обязателен.

Метод возвращает значение, переданное в функцию int() , в виде целого числа. Синтаксис метода int() выглядит так:

int(number, base=base)

Пример работы с методом int() . Здесь мы приводим строку к числу:

print(int("12"))

Возвращает наша программа следующее:

Примеры преобразования строк в целые числа

Рассмотрим более детальные примеры использования метода int() . Допустим, мы создаем анкету для участия в детской игре. В ней нам нужно указать возраст пользователя. Хранить значение в нашей базе данных мы должны в виде целого числа. Но после того, как пользователь вводит значение в нашей программе, возраст конвертируется в строку.

Напишем программу, которая выполняет эту функцию. Начнем мы с метода input() — с помощью него получим возраст пользователя:

raw_user_age = input("Сколько вам лет?") print(raw_user_age)

Когда пользователь введет число, оно выводится в консоли. Вот что происходит, когда мы запускаем нашу программу:

Сколько вам лет? 12 12

Значение, которое ввел пользователь — 12. Выглядит как число… Но если мы используем метод type() для проверки типа данных возраста, то удивимся — это не число. Чтобы проверить тип данных введенного значения, нужно написать следующее:

print(type(raw_user_age))

Как видите, наши данные хранятся в виде строки. Очевидно, что мы должны конвертировать наши данные в целое число. Сделать это можно так:

raw_user_age = input("Сколько вам лет?") user_age = int(raw_user_age) print(user_age)

Вот что происходит, когда мы запускаем программу и вводим значение 12:

Сколько вам лет? 12 12

Возвращает наша программа то же самое, что и раньше. Но теперь 12 хранится в виде целого числа. Используем метод type() , чтобы это проверить:

print(type(user_age))

Теперь программа работает так, как нам было нужно.

Как преобразовать строку в int в Python – 3 способа

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

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

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

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

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

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

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)
  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. Наконец, на выходе отображается результирующее значение.

Здесь мы увидим, как мы можем преобразовать число, представленное в виде строкового значения, в основание 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 есть несколько полезных встроенных функций, которые позволяют преобразовать данные из одного типа в другой.

int #

int преобразует строку в int:

In [1]: int("10") Out[1]: 10 

С помощью функции int можно преобразовать и число в двоичной записи в десятичную (двоичная запись должна быть в виде строки)

In [2]: int("11111111", 2) Out[2]: 255 

bin #

Преобразовать десятичное число в двоичный формат можно с помощью bin :

In [3]: bin(10) Out[3]: '0b1010' In [4]: bin(255) Out[4]: '0b11111111' 

hex #

Аналогичная функция есть и для преобразования в шестнадцатеричный формат:

In [5]: hex(10) Out[5]: '0xa' In [6]: hex(255) Out[6]: '0xff' 

list #

Функция list преобразует аргумент в список:

In [7]: list("string") Out[7]: ['s', 't', 'r', 'i', 'n', 'g'] In [8]: list(1, 2, 3>) Out[8]: [1, 2, 3] In [9]: list((1, 2, 3, 4)) Out[9]: [1, 2, 3, 4] 

set #

Функция set преобразует аргумент в множество:

In [10]: set([1, 2, 3, 3, 4, 4, 4, 4]) Out[10]: 1, 2, 3, 4> In [11]: set((1, 2, 3, 3, 4, 4, 4, 4)) Out[11]: 1, 2, 3, 4> In [12]: set("string string") Out[12]: ' ', 'g', 'i', 'n', 'r', 's', 't'> 

Эта функция очень полезна, когда нужно получить уникальные элементы в последовательности.

tuple #

Функция tuple преобразует аргумент в кортеж:

In [13]: tuple([1, 2, 3, 4]) Out[13]: (1, 2, 3, 4) In [14]: tuple(1, 2, 3, 4>) Out[14]: (1, 2, 3, 4) In [15]: tuple("string") Out[15]: ('s', 't', 'r', 'i', 'n', 'g') 

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

str #

Функция str преобразует аргумент в строку:

In [16]: str(10) Out[16]: '10' 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *