Для вычисления количества [десятичных] цифр целого числа можно воспользоваться целой частью десятичного логарифма (правда, результат будет занижен на единицу, но её достаточно будет прибавить):
(Последняя строка есть искомое python-выражение; ещё и print можно выбросить для краткости.)
Пожертвовав однострочностью, тоже самое можно сделать без вещественной арифметики и модуля math, воспользовавшись циклом (из-за технических дефектов этого сайта приходится в начале каждой строки добавлять лишние символы, символ подчёркивания в данном случае):
(В только-что приведённом фрагменте мы просто, делением на 10, выбрасываем цифру за цифрой пока ничего не останется.)
Для вещественных же чисел мы можем воспользоваться двумя циклами -- первый будет идентичен уже приведённому и будет выполнять подсчёт цифр целой части числа, а второй будет, вместо деления, умножать число на 10, пока оно не станет целым, что позволит подсчитать количество цифр в дробной части числа (да, программка зависнет для периодических дробей):
(N.B., в этом фрагменте, подвыражение m%1 действует по формальным правилам нахождения остатка -- оно находит неименьшее число, которое следует добавить к mk для некоторого множителя k; такой "остаток" может быть и дробным, что позволяет кратко получить дробную часть числа, e.g., 3.7%1=0.7.)
P.S.: На мой взгляд, эти примеры, несмотря на некоторую многословность, более приемлемы чем "хак" с преобразованием числа в строку [приведением типов].