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

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

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

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

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

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

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

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

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» , подготовленная редакцией проекта.

Меню