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

Обложка к статье "Преобразование строк в числа в Python"

Преобразование строк в числа — распространенная задача в программировании, особенно при работе с данными, полученными из внешних источников или пользовательского ввода. В языке Python существует несколько способов преобразования строковых значений в числовые форматы, такие как целые числа (int), числа с плавающей точкой (float) и другие.

В этой статье мы рассмотрим различные функции, которые позволяют осуществить преобразование строк в числа, а также обсудим практические примеры использования каждого из них. В конце поговорим о том, как мы можем обработать исключения при преобразовании строки в число.

Преобразование строки в целое число (int)

В Python можно преобразовать строку в целое число с помощью функции int(). Эта функция позволяет преобразовать строку, представляющую целое число, в само целое число.

number_str = "123"
number_int = int(number_str)
print(number_int)  # Вывод: 123

Также можно использовать функцию int() для преобразования чисел с другими системами счисления. В этом случае строка должна начинаться с префикса, указывающего на систему счисления (например, «0b» для двоичной, «0o» для восьмеричной и «0x» для шестнадцатеричной), а затем следует само число.

binary_str = "0b1010"
binary_int = int(binary_str, 2)
print(binary_int)  # Вывод: 10

Если строка не соответствует целому числу, а также не является строкой с числом другой системы счисления, то будет сгенерировано исключение ValueError.

Преобразование строки в число с плавающей точкой (float)

Для преобразования строки в число с плавающей точкой в Python используется функция float(). Она преобразует строку, содержащую числовое значение с плавающей точкой, в соответствующее число с плавающей точкой.

number_str = "3.14"
number_float = float(number_str)
print(number_float)  # Вывод: 3.14

Аналогично, если строка не содержит числовое значение, то будет сгенерировано исключение ValueError.

Преобразование строки в числа с фиксированной точностью (decimal)

Модуль decimal предоставляет класс Decimal, который позволяет работать с числами с фиксированной точностью. Для преобразования строки в объект Decimal используется конструктор Decimal().

from decimal import Decimal

number_str = "3.14"
number_decimal = Decimal(number_str)
print(number_decimal)  # Вывод: 3.14

Преобразование строки в дробь (Fraction)

Модуль fractions в Python предоставляет класс Fraction, который позволяет работать с дробными числами. Для преобразования строки в объект Fraction используется конструктор Fraction().

from fractions import Fraction

fraction_str = "3/4"
fraction = Fraction(fraction_str)
print(fraction)  # Вывод: 3/4

Обработка исключений при преобразовании строки в число

При преобразовании строки в число в Python может возникнуть несколько типов исключений, таких как ValueError и TypeError. Для более надежной работы с преобразованием строк в числа рекомендуется использовать обработку исключений.

Обработка исключения ValueError

Исключение ValueError возникает, когда строка не может быть преобразована в число заданного типа. Например, при попытке преобразовать строку "abc" в целое число.

try:
    number = int("abc")
except ValueError:
    print("Ошибка: Невозможно преобразовать строку в число.")

Обработка исключения TypeError

Исключение TypeError может возникнуть, если функция преобразования принимает аргумент неправильного типа. Например, попытка преобразовать список в число.

try:
    number = int(["1", "2", "3"])
except TypeError:
    print("Ошибка: Неправильный тип данных для преобразования.")

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий