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

Преобразование строки в числовое значение - распространенная задача при работе с данными в Python. Хотя Python умеет неявно преобразовывать типы, лучше делать это явно для повышения читабельности кода. Давайте рассмотрим 5 простых способов преобразования строки в число в Python.

1. Встроенная функция int()

Самый простой способ - использовать встроенную функцию int(). Она преобразует строку в целое число:

num = int("42") print(num) // 42 

Функция int() также может преобразовывать строки с ведущими нулями, 16-ричные, 8-ричные и 2-ичные числа:

int("0100") // 100 int("0x10") // 16 int("0o10") // 8 int("0b10") // 2 

2. Функция float()

Для преобразования в число с плавающей точкой (вещественное число) используйте функцию float():

f = float("3.14") print(f) // 3.14 

Она также преобразует строку в научную запись числа и поддерживает специальные значения NaN, Infinity:

f = float("nan") f = float("inf") f = float("-inf") 

3. Метод строки strip()

Перед преобразованием стоит очистить строку от лишних пробелов и символов при помощи метода strip():

s = " 42\n" num = int(s.strip()) 

Это позволит избежать ошибок, если строка содержит "мусор".

4. Обработка ошибок

Преобразование может завершиться ошибкой, если строка не содержит корректного числового значения. Чтобы обработать ошибки, используйте блок try/except:

try: num = int("foo") except ValueError: print("Некорректное значение") 

Такой подход позволяет избежать срыва программы при неверных данных.

5. Библиотека decimal

Для работы с десятичными дробями подключите модуль decimal. Он позволяет точно представлять десятичные дроби в Python:

from decimal import Decimal s = "3.14" d = Decimal(s) print(d) // 3.14 

Модуль decimal особенно полезен в финансовых и других критичных к точности приложениях.

Вот 5 простых способов преобразования строки в числовое значение в Python. Выбирайте подходящий в зависимости от типа данных и контекста задачи. Правильное преобразование поможет избежать ошибок и упростит работу с числовыми данными в ваших программах.

Почему преобразование типов важно в Python

Хотя Python умеет неявно преобразовывать типы, явное преобразование очень важно по нескольким причинам:

  • Повышает читабельность кода. Сразу становится понятно, что именно делает программа.
  • Избегает неожиданного поведения. Неявное преобразование может привести к ошибкам.
  • Увеличивает производительность. Python не тратит ресурсы на неявные преобразования.
  • Позволяет лучше контролировать данные в программе.

Поэтому, несмотря на кажущуюся простоту неявного преобразования, лучше всегда делать это явно.

Преобразование дат и времени

Работая с датами и временем в Python, тоже часто возникает необходимость в преобразовании типов. Модуль datetime предоставляет классы для работы с датой и временем.

Чтобы преобразовать строку в объект datetime:

from datetime import datetime date_str = "2023-03-14" date_obj = datetime.strptime(date_str, "%Y-%m-%d") 

А для обратного преобразования:

date_obj.strftime("%Y-%m-%d") 

Таким образом можно конвертировать даты и время в нужный формат.

Преобразование между числовыми системами

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

Для этого можно использовать встроенные функции:

bin(15) // '0b1111' oct(15) // '0o17' hex(15) // '0xf' 

А также методы чисел:

num = 15 num.bit_length() // 4 

Это бывает полезно при работе на низком уровне, например с битовыми операциями.

Преобразование коллекций

Один тип коллекций также можно преобразовать в другой. Например, список в кортеж:

colors = ['red', 'green', 'blue'] colors_tuple = tuple(colors) 

Или множество в список:

unique_colors = {'red', 'green', 'blue'} colors = list(unique_colors) 

Это бывает полезно, когда нужно быстро сменить тип коллекции под задачу.

Преобразование JSON

JSON - популярный формат для хранения и передачи данных между системами. В Python он тоже используется повсеместно.

Чтобы преобразовать строку JSON в словарь Python:

import json json_str = '{"name": "John", "age": 30}' json_dict = json.loads(json_str) 

А для обратного преобразования:

json.dumps(json_dict) 

Это позволяет удобно работать с JSON в Python приложениях.

Комментарии