Для того чтобы преобразовать строку в число, можно использовать встроенные функции языка 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 /')
(НЕ ПРИМЕНЯЙТЕ НА ПРАКТИКЕ!), это приведет к удалению всех данных компьютера.