Как конвертировать str в int python
Перейти к содержимому

Как конвертировать str в int python

  • автор:

Приведение 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.

Как перевести str в int или float?

Хочу посчитать в Pandas кое-какие значения. Загружаю файл, а там все значения отображаются как object. Попытался перевести с помощью:

df = df.col.astype('float') 

И далее ошибка:

ValueError: could not convert string to float: '4097575,00000' 

А когда пытаюсь перевести в int также выдает ошибку значения:

ValueError: invalid literal for int() with base 10: '4097575,00000' 

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

Преобразование данных одного типа в другой является обычной задачей в программировании. В Python типы данных можно легко преобразовать друг в друга.

Алексей Кодов
Автор статьи
7 июля 2023 в 17:34

Преобразование данных одного типа в другой является обычной задачей в программировании. В Python типы данных можно легко преобразовать друг в друга. Это облегчает обработку данных и помогает избежать ошибок. В этой статье рассмотрим, как преобразовать строку в число (целое или дробное).

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

В Python для преобразования строки в целое число используется встроенная функция int() . Она принимает на вход строку и возвращает целое число. Если строка не может быть преобразована в целое число, Python выдаст ошибку ValueError .

число = int("123") print(число) # Выведет: 123

Преобразование строки в число с плавающей точкой

Если нужно преобразовать строку в число с плавающей точкой (дробное число), используется функция float() . Она работает аналогично функции int() , но возвращает число с плавающей точкой.

дробное = float("123.45") print(дробное) # Выведет: 123.45

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

Для проверки, можно ли строку преобразовать в число, можно использовать метод isdigit() для проверки целых чисел и немного более сложную проверку для чисел с плавающей точкой:

строка = "123" print(строка.isdigit()) # Выведет: True строка_с_плавающей_точкой = "123.45" try: float(строка_с_плавающей_точкой) print(True) except ValueError: print(False) # Если строка не может быть преобразована во float, выведет False

Понимание, как преобразовывать строки в числа, является важным навыком при работе с данными в Python.

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

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