Иногда нам нужно выполнить преобразование строки в целое число либо в число с плавающей точкой. Потребность в этом возникает для осуществления ряда операций. Как это сделать в Python, мы сейчас и поговорим.
Чтобы осуществить преобразование строки в целое число либо число с плавающей точкой, в Python используют функции int и float. Если вы захотите выполнить преобразование без применения данных функций, то получите ошибку. Например, к ошибке приведёт следующий код:
str_a = ’50’ b = 10 c = str_a + b print (c)
Давайте посмотрим на следующий участок кода:
str_a = '50' b = 10 c = int(str_a) + b print ("The value of c = ",c)
С его помощью мы выведем значение переменной «c», которое будет представлять собой сумму переменных «str_a» и «b».
Для преобразования строки в число с плавающей точкой мы можем использовать float:
#Преобразование string во float str_a = '50.85' b = 10.33 c = float(str_a) + b print ("The value of c = ",c)
Однако учтите, что если вы захотите задействовать тут функцию int(), это приведёт к ошибке.
Бывает, что в Python необходимо выполнить преобразование строки из чисел, содержащихся в списке. В таких случаях нам поможет генератор списков. Таким образом создаётся новый список, где можно использовать функцию 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)
Что делать, если у нас строка наподобие «1,000,000»? Если мы попробуем выполнить её преобразование с помощью функций int() либо float(), мы получим ошибку.
Одно из решений — применение import locale:
locale.setlocale(locale.LC_ALL, ‘en_US.UTF-8’ )
Приём работает, но он не идеален. Другое решение — заменить запятые на пустые строки, а потом применить уже известную нам функцию 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")
Таким образом происходит преобразование вводимой строки в целое число, а потом это число применяется для расчёта.
При выполнении преобразования целых чисел в строки используется функция 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.
Иногда требуется преобразовать строку в целое число или в число с плавающей точкой для осуществления определённых операций в Python.
Если вы попробуете выполнить то или иное действие со строкой в виде чисел, то получите ошибку.
Этот код приведёт к ошибке:
str_a = ’50’ b = 10 c = str_a + b print (c)
В Python можно использовать функции int и float для преобразования строки в целое число или число с плавающей точкой до осуществления каких-либо операций.
Рассмотрим следующий код:
str_a = '50' b = 10 c = int(str_a) + b print ("The value of c = ",c)
В результате его работы выведется значение переменной c, представляющее собой сумму переменных str_a и b.
Можно использовать класс float для того чтобы осуществить преобразование строки в число с плавающей точкой.
Пример использования float для преобразования строки:
#Пример преобразования string во float str_a = '50.85' b = 10.33 c = float(str_a) + b print ("The value of c = ",c)
Замечание: если вы попытаетесь использовать здесь функцию 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’ )
Но это может вызвать проблемы в остальных локалях. Другое решение заключается в том, чтобы заменить запятые пустыми строками, то есть“”, а затем использовать функцию 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»
⬅ ПОСМОТРЕТЬ ВСЕ СТАТЬИ
Во многих процессах автоматизации числа, полученные на экране, требуют последующего вычисления. Разработчику UiPath необходимо научиться преобразовывать строковую переменную в целочисленную или двойную переменную в UiPath.
Во-первых, вы можете задаться вопросом, зачем нам это нужно. Например, есть две строковые переменные: «2» и «3». Когда мы складываем их вместе с помощью выражения со знаком плюс, ожидаемый результат равен «5». Однако, поскольку они являются строковыми переменными, результатом будет «23».
Таким образом, если вы хотите, чтобы две строковые переменные складывались как целое число (не строка), вы должны преобразовать их в целочисленную переменную перед их суммированием.
В целом существует три метода преобразования строковой переменной в целочисленную переменную.
Чтобы использовать каждый метод, выполните следующие действия:
Если все результаты равны «5», то очевидно, что все три метода сработали.
Существуют некоторые различия между тремя методами, когда входная строка имеет неверный целочисленный формат. Если ваша строковая переменная не является числовым форматом, таким как «10a», тогда все они будут вызывать исключение.
Но если строка представляет собой числовой формат, включающий десятичную точку, например «10,6» или «-8,2».
Convert.ToInt32 и Integer.Parse по-прежнему вызывают исключение, но CInt возвращает округленный результат «11» и «8». В этом случае результатом сложения будет «3».
Кстати, если дробная часть находится посередине между двумя целыми числами, одно из которых четное, а другое нечетное, то будет возвращено четное число.
Поскольку целая переменная может сохранить только целую часть числовой информации, если нам нужно сохранить дробную часть, есть также три метода, которые можно использовать для преобразования строковой переменной в двойную переменную.
Если значения по умолчанию двух строковых переменных: «10,6» и «-8,4», тогда все результаты будут «2,4».
Теперь вы будете
SiYang Wu — MVP сообщества UiPath и директор проекта RPA в NRI в Пекине, Китай
Как преобразовать список в строку в R? Список может содержать элементы разных типов, например, строковые, числовые, векторные, матричные, data.frame. И если у вас есть значения в двойных кавычках, которые он считает строкой, используйте методы paste() или toString(), чтобы объединить все элементы из списка в строковое значение с разделителем или без него.
Следующие методы используются для преобразования элементов из списка в строку в программировании на R.
Pandas groupby() и count() с E…
Включите JavaScript
Pandas groupby() и count() с примерами
Вставка () Функция
в R может использоваться для преобразования или объединения списка элементов в строку путем разделения каждого элемента разделителем. Чтобы отделить строковые элементы от единого списка с помощью свернуть
параметр с разделителем. А чтобы отделить элементы из нескольких списков, используйте параметр sep
. Давайте создадим список, используя комбинированную функцию list().
# синтаксис вставки() вставить(…, sep = " ", свернуть = NULL)
. ..
– один или несколько входных объектов для объединения.
сен
– символ для разделения значений между несколькими векторами. Чтобы использовать параметр sep
, вы должны использовать несколько векторов в качестве входных данных.
свернуть
— символ для разделения значений в векторе
В следующем примере все значения из списка преобразуются в одну строку со значениями, разделенными пробелом.
# Преобразование списка в строку li <- list('A','B','C','D','E','F') вставить (li, свернуть = ' ') # Выход [1] «А Б В Г Д Е Ф»
Функцию toString() можно использовать для преобразования элементов из списка в строку символов, но эта функция по умолчанию добавляет разделитель-запятую между элементами.
# Использование toString() toString (ли) # Выход #[1] "А, Б, В, Г, Е, Ж"
Кроме того, вы также можете использовать функцию do. call()
для использования функции paste() для преобразования элементов списка в строку. Используйте , сверните
, чтобы разделить строку в списке разделителем.
# используя do.call() do.call (вставить, с (ли, свернуть = "")) # Выход [1] «А Б В Г Д Е Ф»
Используйте stri_paste()
из пакета stringi
для объединения векторных элементов в строки в R. Эта функция также принимает параметр Collar
для разделения строк по символам. Чтобы использовать этот пакет, сначала установите пакет r и загрузите его с помощью функции library()
. Итак, чтобы преобразовать список в строку, я буду использовать unlist() для преобразования списка в вектор, а затем использовать вектор с помощью stri_paste(). Хотя использование этого метода не является рекомендуемым вариантом, но все же хотелось бы осветить его, поскольку его можно использовать при необходимости.
# Загрузить строку библиотека ('строки') stri_paste (удалить список (li), свернуть = '')