Приведение 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))
- Первый шаг – объявить переменную a со строковым значением.
- После этого мы проверили ее тип данных с помощью type().
- Для преобразования строки в целое число мы использовали int(), а затем проверили ее тип.
- Теперь мы поработали с переменной «а», добавив к ней 10.
- Наконец, на выходе отображается результирующее значение.
В следующем примере мы применим косвенный подход к преобразованию строки в целое число.
Следующая программа показывает, как это можно сделать:
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
- Первый шаг – объявить две переменные value_a и value_b со строковым значением.
- После этого проверили их тип данных с помощью type().
- Для преобразования строки в целое число мы использовали float() для преобразования строки в значение с плавающей запятой.
- На следующем шаге преобразуем строковое значение value_b в целое число.
- Теперь мы сложили value_a и value_b и распечатали их сумму.
- Наконец, на выходе отображается результирующее значение.
Здесь мы увидим, как мы можем преобразовать число, представленное в виде строкового значения, в основание 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
- На первом этапе мы объявили значение переменной.
- Поскольку вывод всегда будет в базе 10, мы предоставили различные базовые значения внутри int().
- В качестве базовых значений мы взяли 10, 8 и 6.
- При выполнении программы отображается ожидаемый результат.
Вывод
В этом руководстве мы узнали о различных способах преобразования строки в значение типа 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.