5 примеров преобразования строки в целое число или число с плавающей точкой в Python

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

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

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

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

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

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

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

str_a = '50'b = 10c = int(str_a) + bprint("The value of c = ",c) 

В результате его работы выведется значение переменной c, представляющее собой сумму переменных str_a и b.

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

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

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

#Пример преобразования string во floatstr_a = '50.85'b = 10.33c = float(str_a) + bprint("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 == 0ifleap_or_not:print("Leap year")else:print("Not a leap year")

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

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

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

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

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

Отображение:

str function for int to string456

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

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

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