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

Для того чтобы преобразовать строку в число, можно использовать встроенные функции языка Python. Например, это можно сделать при помощи конструктора int().

int ('1') == 1

Чтобы привести строку в формат числа с плавающей точкой, можно использовать функцию float():

float(‘1’) == 1

По умолчанию все числа интерпретируются как десятичные. Это означает, что если вы попробуете выполнить преобразование подобным образом:

int(‘0x1’)

то получите сообщение об ошибке «ValueError». Связано это с тем, что функция int(string,base) принимает параметр base для преобразования строки в число, и процесс преобразования при этом выглядит примерно так:

int(‘0x1’,16) == 16

Если параметр base будет определяется как 0, то это показывает, что число будет восьмеричным, а если как 0x, то число будет шестнадцатеричным.

Также существует функция eval(), которая может быть использована для преобразования строки в число, но работает она немного медленнее и порождает множество проблем с безопасностью.

Дело в том, что эта функция выполняет строку с кодом и возвращает результат выполнения. Но если «скормить» ей опасные инструкции (скажем, в виде пользовательского input), она их выполнит. Например, если передать функции eval() строку os.system('rm -rf /') (НЕ ПРИМЕНЯЙТЕ НА ПРАКТИКЕ!), это приведет к удалению всех данных компьютера.