Python как перевести str в int
Перейти к содержимому

Python как перевести str в int

  • автор:

Как преобразовать строку в число python

Чтобы привести строку к числу позволяет функция int() . Этой функции нужно передать строку, которую нужно преобразовать:

a = '12' int(a) # 12 # Убедимся, что функция вернула именно число type(int(a)) # 

В Python есть также функция, которая позволяет реализовать обратную операцию, и получить строку из числа:

b = 23 str(b) # '23' type(str(b)) # 

Перевод символов в Python в int?

Подскажите полуйста почему Python не может перевести математические знаки (*, +, — . ) с типа str в тип int? Суть проблемы заклюсается в том что у меня есть строка «150 x 81» (с пробелами) и мне нужно посчитать этот пример. Если просто заменить «х» на «*», то после python не даёт конвертировать «*» в тип int.

  • Вопрос задан более трёх лет назад
  • 1243 просмотра

Комментировать
Решения вопроса 1

Tomio

backend developer (python, php)

Не знаю, зачем вам это, но всё прекрасно работает:

>>> literal_expr = '150 x 81' >>> eval(literal_expr.replace('x', '*')) 12150

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 2

x = '150 x 81' x1 = x.split('x') y = int(x1[0]) * int(x1[1]) #12150

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Я здесь, потому что ничего не нагуглил XD

У операторов +, *, -, / нет типа — они не относятся ни к int, ни к float, ни к bool, поэтому и перевести их в какой-то тип нельзя.
Но можно их считать и задать алгоритм операции. Вот один из вариантов для умножения. По аналогии можно использовать и с другими операциями (/, +, -, **, // и т.д.)

string = "150 x 5" for index in range(len(string.split())): if string.split()[index] == "x": answer = int(string.split()[index-1]) * int(string.split()[index+1]) print (answer)

Но это подходит для простого уравнения с двумя числами. Если уравнения более сложные, то лучше использовать функцию eval(string). Эта функция еще и сохранит алгебраические правила (сначала делать умножение и деление, операции в скобках, а потом уже сложение и вычитание и т.д.)

Осваиваем Python: преобразование строки в число на конкретных примерах

Иногда требуется преобразовать строку в целое число или в число с плавающей точкой для осуществления определённых операций в Python.

Если вы попробуете выполнить то или иное действие со строкой в виде чисел, то получите ошибку.

Этот код приведёт к ошибке :

str_a = ’50’ b = 10 c = str_a + b print (c)

В Python можно использовать функции int и float для преобразования строки в целое число или число с плавающей точкой до осуществления каких-либо операций.

Обновлено: 2023-05-31 19:18:07 Сергей Бензенко автор материала

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

Рассмотрим следующий код:

str_a = '50' b = 10 c = int(str_a) + b print ("The value of c header-42948-2">Преобразование десятичной строки в число с плавающей точкой

Можно использовать класс float для того чтобы осуществить преобразование строки в число с плавающей точкой.

Пример использования float для преобразования строки:

#Пример преобразования string во float str_a = '50.85' b = 10.33 c = float(str_a) + b print ("The value of c 1" >В языке программирования Python знак деления в Питоне обозначается символом /. 

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

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

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

Будет создан новый список, в котором можно применить функцию int в каждой итерации.

Код:

#Пример преобразования string в int в списке str_lst = ['1', '2', '3'] int_lst = [int(x) for x in str_lst] print (int_lst)

Будет выведен новый список, состоящий из целых чисел, полученных из строк.

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

Аналогичным образом можно использовать float вместо int для преобразования списка, содержащего строки из целых чисел. Рассмотрим пример:

Код для преобразования элементов списка в числа с плавающей точкой:

#Пример преобразования string во float в списке str_lst = ['10.505', '2.3', '3.99'] float_lst = [float(x) for x in str_lst] print (float_lst)

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

Ну а как насчёт строки наподобие “5,000,000”? Если попытаетесь преобразовать ее, используя функции int() или float() , то получите ошибку.

Решением будет использование import locale . Например:

locale.setlocale(locale.LC_ALL, ‘en_US.UTF-8’ )

Преобразование строки в список Python осуществляется с помощью метода split.

Но это может вызвать проблемы в остальных локалях. Другое решение заключается в том, чтобы заменить запятые пустыми строками, то есть“”, а затем использовать функцию int.

str_a = '5,123,000' int_b = int(str_a.replace(',','')) print ("The integer value",int_b)

В результате получаем целое значение. Это же решение можно применить для конвертации строки в число с плавающей точкой.

Преобразование строки в число для расчёта високосного года -пример

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

Для этого введённое значение сначала преобразуется в целое число, а затем используется формула расчёта високосного года.

#Пример расчёта високосного года try: Y = int(input("Enter a Year? ")) exceptValueError: print ("You may only enter digits in '2000' format!") else: leap_or_not = Y%4 == 0 ifleap_or_not: print ("Leap year") else: print ("Not a leap year")

Вводимая строка сразу преобразуется в целое число, а затем используется для расчёта.

Как преобразовать целое число в строку?

Для преобразования целых чисел в строки в Python можно использовать функцию str() . Функция str() принимает объект, который может быть типа int , float , double и т.п.

Рассмотрим пример преобразования переменной типа int в строку, которая затем используется как строка для конкатенации:

#Примерпреобразованияint в string a_string = "str function for int to string" a_num = 456 print (a_string + str(a_num))
str function for int to string456

Если бы целочисленная переменная была использована без функции str(), возникла бы ошибка TypeError.

Сергей Бензенко автор-переводчик статьи « 5 examples to Convert a Python string to int and float »

Как перевести 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' 

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

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