Как узнать разрядность числа python

3 способа определить количество разрядов в числе в Python

3 способа определить количество разрядов в числе в Python

Статьи

Введение

В ходе статьи рассмотрим три вариации кода для определения количества разрядов в ведённом пользователем числе на языке программирования Python.

Длинный способ с циклом while

Дадим пользователю возможность ввести число:

Если было введено отрицательное число, нужно его сделать положительным. Для этого добавим его в модуль методом abs():

n = int(input('Введите число: ')) n = abs(n)

Добавим переменную count равную нулю:

n = int(input('Введите число: ')) n = abs(n) count = 0

Создадим цикл while, который не закончится, пока n > 0. В цикле будем убирать последнюю цифру в переменной n, а к count прибавлять единицу:

n = int(input('Введите число: ')) n = abs(n) count = 0 while n > 0: n //= 10 count += 1

Осталось вывести результат:

n = int(input('Введите число: ')) n = abs(n) count = 0 while n > 0: n //= 10 count += 1 print(count) # Введите число: 164832 # 6

Короткий способ циклом for

Обычно подобным не занимаются при помощи цикла for, но почему бы и нет. Как и в предыдущем способе даём пользователю возможность ввода числа, и добавляем его в модуль. Также создаём переменную count равную нулю:

n = abs(int(input('Введите число: '))) count = 0

Создадим цикл for, в котором пройдёмся по количеству символов в переменной n. Внутри цикла прибавляем к count единицу:

n = abs(int(input('Введите число: '))) count = 0 for i in range(len(str(n))): count += 1

Выведем результат в консоль:

n = abs(int(input('Введите число: '))) count = 0 for i in range(len(str(n))): count += 1 print(count) # Введите число: 111 # 3

Самый быстрый способ

Как и в предыдущих способах даём пользователю возможность ввода числа, и добавляем его в модуль:

n = abs(int(input('Введите число: ')))

Теперь в переменную count сохраним длину значения преобразованного в строковый тип данных в переменной n:

n = abs(int(input('Введите число: '))) count = len(str(n))
n = abs(int(input('Введите число: '))) count = len(str(n)) print(f'В числе находится разрядов.') # Введите число: 17424312 # В числе 17424312 находится 8 разрядов.

Заключение

В ходе статьи мы с Вами разобрали целых 3 способа определить количество разрядов в числе в Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Источник

Как узнать из скольки цифр состоит число (без перевода в строку )?

Как узнать из скольки цифр состоит число на пример 456 ?
Да можно перевести в строку и там уже узнать с помощью len() и тд..
А как сделать без перевода в строку?

Простой 1 комментарий

HemulGM

Учти, что решение через математику будут медленнее (как ни странно), чем через строку, особенно если число длинное.

LaRN

danila763

с ходу в голову приходит только:
num = 456
counter = 0
while num > 0:
num //= 10
counter += 1
print(counter)

yupiter7575

danila763

yupiter7575

Даниил Шевкунов, Может быть строку данную в условии? Тем более ваше решение не будет работать с отрицательными числами и дробями. А там где будет работать, будет медленно, потому что while

yupiter7575

>>> def getCol(num): . return [i for i, val in enumerate(str(num).replace('.', '').replace('-', ''))][-1] + 1 . >>> getCol(-123) 3 >>> getCol(123) 3 >>> getCol(12.3434) 6

MinTnt

Yupiter7575, это всё равно преобразования числа в строку, и последующее использование уже не числа а строки.

MinTnt

456.12 = 4*10^2 + 5*10^1 + 6*10^0 + 1*10^-1 + 2*10^-2

От этой логики исходя, и искать нужное значение.
Если же число в минус, то использовать модуль, к примеру

yupiter7575

MinTnt, Если говорить по факту, то моя функция выполняет все требования и исходное число в строку не преобразует. Да в цикле есть функция str, но она просто представляет введенное число в строку для цикла, и не изменяет тип какой либо переменной

MinTnt

Есть факт использования str(), далее через enumerate мы просто проходим по строке как по списку, делая дополнительно нумерацию, и выбирая последний элемент.
Но опять же, это преобразование в строку, что нарушает условие вопроса. Да и при этом, раз уже преобразовали в строку, использование цикла лишь делает лишнюю нагрузку.

yupiter7575

MinTnt, Я все равно не понимаю одной вещи, зачем автор вопроса не хочет использовать str? Если он вставит эту функцию куда нибудь в func.py, а потом импортирует, то str он не заметит. Функция будет принимать число и возвращать число.
А если нужно без нагрузки — len(str(num))

MinTnt

Yupiter7575, С этим согласен. Так как после преобразования в строку, её длину по-символьно посчитать проще, да и быстрее чем различные иные попытки циклами.

Но этот вопрос скорее из ряда «Алгоритмы». Т.е. Вопрос скорее в том, какие есть математические алгоритмы, чтоб узнать сколько у него цифр.

fixator10

Мне кажется не стоит, особенно новичкам, советовать выполнять «магические» методы. Для получения значения данного метода существует функция abs() :

yupiter7575

Ну правда, вопрос из категории дебильных. В пайтоне дин. типизация, и вам еще лень переводить число в строку?

a = 1234 a_lenght = len(str(a))

yupiter7575

First_Spectr

yupiter7575

Сергей Шиловский, и? Вам то какое дело? Автор вопроса пришел на тостер, чтобы получить помощь и знания. Я дал автору знание о том как лучше решить эту задачу.

First_Spectr

Yupiter7575, вы не думали что ваш ответ слишком очевиден, чтобы автор о нём не знал, если даже в заголовке вопроса есть жирнющий намёк на это?

yupiter7575

First_Spectr

yupiter7575

Сергей Шиловский, С чем вы хотите спорить? Вопрос написал самоучка, который посмотрел один видос в интернете и начал здесь выпендриваться на тему «Как лучше сделать, если мне так не нравится». Если вам тоже нравится писать говнокод — пожалуйста ваше решение. Я предложил самый оптимальный и удобный вариант, если автору он не подходит — сверху есть еще решения.

Источник

Определить количество разрядов

Цикл с параметром. Определить количество разрядов числа и вывести на экран
Задание во вложении. Обязательно использовать цикл с параметром(for) Вопросы выкладываются.

Написать функцию, которая определяет количество разрядов введенного целого числа
Доброго времени суток, прошу помочь с решением задачи. Написать функцию, которая определяет.

Проверить как изменится количество разрядов в числе M по сравнению с количеством разрядов числа N
Дано натуральное число N. Определить M=N! Проверить как измениться количевство разрядов в числе M.

Эксперт Python

Лучший ответ

Сообщение было отмечено Надиня как решение

Решение

Определить количество разрядов 2 заданного натурального числа
Помогите решить задачу из раздела Оператор цикла. Определить количество разрядов 2 заданного.

Определить количество чисел состоящих из n десятичных разрядов
Определить количество чисел состоящих из n десятичных разрядов (n – натуральное число, вводится.

Определить количество разрядов в двоичной записи числа.
Дано натуральное число N. Определить количество разрядов в двоичной записи этого числа. Pascal

В каждом числе массива определить количество разрядов, равных 1
В каждом числе массива определить количество разрядов, равных 1 Мальчики, помогите, как это.

Вводится натуральное число. Определить количество разрядов этого числа
Добрый день. Задание звучит так: Вводится натуральное число. Определить количество разрядов.

Источник

Читайте также:  Программа выводящая свой код python
Оцените статью