Ребята, привет! Столкнулся с задачей, вроде, простой, но как-то никак не соображу, как посчитать количество чисел в числе python. Вопрос может быть немного глупым, но бывает... Заранее спасибо за помощь!
Ребята, привет! Столкнулся с задачей, вроде, простой, но как-то никак не соображу, как посчитать количество чисел в числе python. Вопрос может быть немного глупым, но бывает... Заранее спасибо за помощь!
Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat
А ТАКЖЕ: Канал о Python, статьи и книги ==>> @pythoneer_ru
Привет! Можешь использовать встроенную функцию len(), чтобы посчитать количество цифр в числе, предварительно преобразовав его в строку. Например:
Надеюсь, это то, что ты искал!Программный код:
number = 12345
number_of_digits = len(str(number))
print(number_of_digits)
Круто, короткий и простой способ. Пробовал, работает!Сообщение от АннаК
Ты можешь попробовать обойтись без преобразования в строку, если тебе нужно только количество цифр. Вот пример на чистом питоне:
Надеюсь, понятно объяснил.Программный код:
def count_digits(n):
count = 0
while n != 0:
n //= 10
count += 1
return count
number = 12345
print(count_digits(number))
Хм, интересный подход без использования строки. Думаю, пригодится в некоторых специфических задачах.Сообщение от ТомСойер
Ещё можно воспользоваться библиотекой math, там есть полезная функция log10() для этих целей.
Простой и лаконичный вариант.Программный код:
import math
number = 12345
number_of_digits = math.floor(math.log10(number)) + 1
print(number_of_digits)
Классная идея использовать логарифмы. Даже не думал об этом! Спасибо за предложение.Сообщение от Ирена
Если ты хочешь обрабатывать большие числа, можно использовать библиотеку gmpy2. Преимущество в том, что она очень быстрая при работе с большими числами. Вот пример:
Возможно, это будет полезно.Программный код:
import gmpy2
number = gmpy2.mpz('123456789012345678901234567890')
number_of_digits = len(number.digits())
print(number_of_digits)
Не знал про gmpy2, можно будет протестить для биг интежеров. Спасибо за инфу!Сообщение от Егор Чернов