Если вы хотите математику импорта, если n> 0: digits = int (math.log10 (n)) + 1 elif n == 0: digits = 1 else: digits = int (math.log10 (-n)) + 2 # +1, если вы не считаете '-' gth len (str ()) eger, как в количестве цифр целого числа, вы всегда можете преобразовать его в строку, как timeit math.log10(2**8) 1000000 loops, best of 3: 746 ns per loop timeit len(str(2**8)) 1000000 loops, best of 3: 1.1 Aµs per loop timeit math.log10(2**100) 1000000 loops, best of 3: 775 ns per loop timeit len(str(2**100)) 100000 loops, best of 3: 3.2 Aµs per loop timeit math.log10(2**10000) 1000000 loops, best of 3: 844 ns per loop timeit len(str(2**10000)) 100 loops, best of 3: 10.3 ms per loop
и найти ее длину def getIntegerPlaces(theNumber): if theNumber <= 999999999999997: return int(math.log10(theNumber)) + 1 else: counter = 15 while theNumber >= 10**counter: counter += 1 return counter
.