Осваиваем Python: преобразование строки в число на конкретных примерах
Иногда требуется преобразовать строку в целое число или в число с плавающей точкой для осуществления определённых операций в Python.
Если вы попробуете выполнить то или иное действие со строкой в виде чисел, то получите ошибку.
Этот код приведёт к ошибке:
str_a = ’50’
b = 10
c = str_a + b
print (c)
В Python можно использовать функции int и float для преобразования строки в целое число или число с плавающей точкой до осуществления каких-либо операций.
- Использование функции int() для преобразования строки в целое число
- Преобразование десятичной строки в число с плавающей точкой
- Преобразование списка строковых чисел в список целых чисел
- Преобразование списка строк в список чисел с плавающей точкой
- Пример преобразования строки с запятыми в число
- Преобразование строки в число для расчёта високосного года -пример
- Как преобразовать целое число в строку?
Использование функции 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.