Попытка преобразования в тип float
На этом этапе мы рассмотрим, как использовать функцию float()
для преобразования строк в числа с плавающей точкой. Это полезно, когда вам нужно работать с числами, которые содержат десятичные точки или представлены в научной нотации.
Функция float()
- это встроенная функция в Python, которая пытается преобразовать свой аргумент в число с плавающей точкой. Если аргумент является строкой, то она должна быть корректным представлением числа с плавающей точкой.
Давайте снова модифицируем наш скрипт, чтобы использовать функцию float()
и посмотрим, как она обрабатывает разные строки:
-
Откройте файл numeric_strings.py
в редакторе VS Code.
-
Измените код, добавив функцию float()
и обработку возможных ошибок:
## Define some strings
string1 = "123"
string2 = "3.14"
string3 = "-42"
string4 = "0"
string5 = " 56 "
string6 = "abc"
string7 = "123.45.67"
string8 = "1e10"
## Try converting the strings to floats
strings = [string1, string2, string3, string4, string5, string6, string7, string8]
for s in strings:
try:
float_value = float(s)
print(f"String '{s}' can be converted to float: {float_value}")
except ValueError:
print(f"String '{s}' cannot be converted to float")
-
Сохраните файл numeric_strings.py
.
-
Запустите скрипт из терминала:
python numeric_strings.py
Вы должны увидеть следующий вывод:
String '123' can be converted to float: 123.0
String '3.14' can be converted to float: 3.14
String '-42' can be converted to float: -42.0
String '0' can be converted to float: 0.0
String ' 56 ' can be converted to float: 56.0
String 'abc' cannot be converted to float
String '123.45.67' cannot be converted to float
String '1e10' can be converted to float: 10000000000.0
Как вы можете видеть, функция float()
может успешно преобразовать строки, которые представляют целые числа, десятичные числа и числа в научной нотации. Она также автоматически удаляет начальные и конечные пробелы (как показано на примере string5
). Однако, если строка не может быть интерпретирована как корректное число с плавающей точкой, функция вызывает исключение ValueError
(как показано на примерах string6
и string7
).
Использование блоков try-except
позволяет нам элегантно обрабатывать эти возможные ошибки и предотвратить аварийное завершение программы. Это распространенная и важная практика при работе с пользовательским вводом или данными из внешних источников.