Как вывести все цифры числа в питоне

Как разбить число на цифры в Python

Наша задача состоит в том, чтобы разбить определенное число на отдельные цифры. Предположим, что у нас есть число 987654321. Нам нужно разделить его на цифры и сохранить их как отдельные целочисленные значения.

В Python есть несколько способов решить эту задачу. Разберем их все по порядку.

Как разбить число на цифры при помощи map()

Функция map() принимает в качестве аргументов определенную функцию и итерируемый объект (список, кортеж и т.д. ) и применят эту функцию к каждому элементу объекта.

Давайте рассмотрим следующее выражение:

mapObject = map(int, string_num)
  • string_num – список
  • int – функция, которая преобразует каждый элемент списка в целое число
  • mapObject – переменная, в которую сохранен объект функции map() ;

В следующем примере показана работа функции map() в задаче разделения числа на отдельные цифры.

giveNumber = 987654321 string_num = str(giveNumber) mapObject = map(int, string_num) separate_digit_list = list(mapObject) print(separate_digit_list) # Результат: # [9, 8, 7, 6, 5, 4, 3, 2, 1]
  • Сначала преобразуем наше число в строку при помощи встроенной функции str() , чтобы передать его в функцию map() в качестве итерируемого объекта
  • Функция map() применяет функцию int() к каждому элементу строки
  • Функция list() преобразует объект функции map() в искомый список отдельных цифр, из которых состоит наше число.

Как разбить число на цифры при помощи цикла for

number = 987654321 for n in str(number): # print(type(n)) # Если раскомментировать, эта строка будет выводить print(int(n)) # Преобразуем символ строки обратно в число

Объяснение. Нам дано число 987654321. Для перебора цифр, составляющих это число, его надо преобразовать в строку (итерируемый объект). Тип каждого элемента мы можем выводить в консоль при помощи выражения print(type(n)) .

Некоторые могут задаться вопросом: а что если перебрать непосредственно само число, не преобразуя его в строку? Мы можем попробовать это сделать в следующем примере:

number = 987654321 for n in number: print(int(n)) # Результат: # TypeError: int object is not iterable

В результате работы цикла for происходит ошибка: объект типа int не является итерируемым. Поэтому перед перебором цифр число сначала нужно преобразовать в строку. Все элементы этой строки являются символами (строчного типа). Для получения числовой последовательности нам придется преобразовать их в целые числа при помощи встроенной функции int() .

Читайте также:  Ruinfnos ru potenc html

Как разделить число на цифры при помощи генератора списка

Генераторы списков (list comprehension) в Python предоставляют мощный функционал для написания результативного кода в одну строчку.

Мы уже рассмотрели пример кода, демонстрирующий разбиение числа на цифры с помощью цикла for . Теперь мы перепишем ту же программу при помощи генератора списка.

givenNumber = 987654321 charterList = [receivedDigit for receivedDigit in str(givenNumber)] print(charterList) # Результат: # ['9', '8', '7', '6', '5', '4', '3', '2', '1']
  • Сохраняем наше число как строку
  • Генератор списка разбивает строку на отдельные цифры
  • Сохраняем полученный список в переменную charterList и выводим его на печать

В результате мы получили список символов (типа str), а не чисел, как хотели бы, верно? Чтобы это исправить, нужно просто добавить функцию int() в наш генератор списка:

givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList) # Результат: # [9, 8, 7, 6, 5, 4, 3, 2, 1]

Здесь int(receivedDigit) преобразует каждый символ в число (типа int), а полученный результат становится списком целых чисел, как нам и хотелось. Таким образом мы можем разбить на цифры двузначное, трехзначное, четырехзначное число и так далее.

Как разделить число на цифры при помощи цикла for и функции list()

Приведенный ниже код иллюстрирует применение функции append() для сбора цифр из заданного числа в список:

number = 987654321 result = [] for n in str(number): result.append(int(n)) print(result) # Результат: # [9, 8, 7, 6, 5, 4, 3, 2, 1]
  • Перед началом цикла создаем пустой список result = []
  • Для преобразования каждого элемента из строкового типа в целочисленный используем функцию int()
  • Добавляем полученное целочисленное значение в наш список в переменной result

1 комментарий к “Как разбить число на цифры в Python”

Источник

Python. Решение задач на обработку целых чисел

В данной теме приведены примеры решения наиболее распространенных задач, связанных с обработкой чисел. Изучение темы предполагает базовые знания по основам языка Python, а именно, использование средств ввода/вывода, циклов, списков, функций и тому подобное.

Поиск на других ресурсах:

1. Выделить все цифры целого числа и представить их в виде списка
# Ввод числа n = input("n color: #ff0000;"># Выделить все цифры числа и представить их в виде списка # Результирующий список L = [] # Цикл формирования списка while n>0: number = n%10 # взять последнюю цифру L = [number] + L # прибавить цифру в список n = n/10 # убрать последнюю цифру из числа print("L color: #333300;">⇑ 
2. Определить указанную цифру в целом числе
2.1. Позиция указывается слева

В примере определяется заданная цифра слева в заданном числе.

# Задача. Выделить цифру в числе по ее позиции # 1. Ввод числа n = input("n color: #ff0000;"># 2. Ввод позиции (начинается с 0) pos = input("pos color: #ff0000;"># 3. Сформировать список цифр числа L = [] # результирующий список # Цикл формирования списка L while n>0: L = [n%10] + L # взять последнюю цифру и прибавить цифру к списку n = n/10 # убрать последнюю цифру из числа # 4. Получить цифру num = L[pos] # 5. Вывести искомую цифру print("num color: #800080;">print("L color: #333300;">⇑ 
2.2. Позиция задается справа

Если задан номер позиции справа (начиная с 0), то в предыдущем примере 2.1 строку

. # 4. Получить цифру num = L[pos] .
# 4. Получить цифру по смещению от конца num = L[len(L) - pos - 1]
3. Вычислить сумму цифр целого числа

# Задача. Вычислить сумму цифр числа # 1. Ввод числа n = input ( "n color: #ff0000;"># 2. Вычислить сумму summ = 0 # Вычисляемая сумма # Цикл выделения цифр из числа и вычисление суммы while n>0: summ = summ + n%10 # взять последнюю цифру и прибавить цифру к сумме n = n/10 # убрать последнюю цифру из числа # 3. Вывести сумму print ( "sum color: #333300;">⇑

4. Инвертировать целое число (1234 => 4321)

Инвертировать число означает, что нужно получить новое число, которое читается как исходное число от конца до начала.

# Задача. Ивертировать число import math # 1. Ввод числа n = input ( "n color: #ff0000;"># 2. Создание нового инвертированного числа # 2.1. Сначала нужно вычислить количество цифр (порядок) в числе k = 0 n2 = n while n2>0: k = k+1 # увеличить счетчик количества цифр на 1 n2 = n2/10 # Убрать цифру # 2.2. Цикл выделения цифр из числа n и создание инвертированного числа while n>0: # взять последнюю цифру last = n%10 # уменьшить порядок числа k = k-1 # умножить полученную цифру на 10^k # и прибавить ее к новому числу n2 = n2 + int (last*math.pow(10, k)) # n2 - новое число # убрать последнюю цифру из числа n = n/10 # 3. Вывести новое число print ( "n2 color: #333300;">⇑

5. Функция GetNumCount() . Определить количество цифр в числе

Реализовать функцию GetNumCount() , которая определяет количество цифр в целом числе. Функция получает параметром исходное число.

# Задача. Определить количество цифр в числе import math # Функция GetNumCount() - определить количество цифр в числе def GetNumCount (n): k = 0 # k - результат while n>0: k = k+1 n = n/10 return k # Демонстрация работы функции # Ввод числа n = input ( "n color: #ff0000;"># Вызов функции k = GetNumCount(n) print ( "k color: #333300;">⇑

6. Функция GetMaxNum() . Определить максимальную цифру в числе

В заданном целом числе n (n>0) нужно определить максимальную цифру. Например, если есть число 2883345, то максимальная цифра будет 8.

# Задача. Определить максимальную цифру в числе import math # Функция GetMaxNum() - определить максимальную цифру в числе def GetMaxNum (n): # получить последнюю цифру числа Max = n%10 while n>0: n = n/10 # уменьшить число if Max < n%10: # сравнить последнюю цифру с максимумом Max = n%10 return Max # Демонстрация работы функции # Ввод числа n = input ( "n color: #ff0000;"># Вызов функции num = GetMaxNum(n) print ( "num color: #333300;">⇑

7. Функция GetMinNum() . Определить минимальную цифру в числе

Задача решается так же как и в предыдущем примере.

# Задача. Определить минимальную цифру в числе import math # Функция GetMinNum() - определить минимальную цифру в числе def GetMinNum (n): # получить последнюю цифру числа Min = n%10 while n>0: n = n/10 # уменьшить число if Min > n%10: # сравнить последнюю цифру с минимумом Min = n%10 return Min # Демонстрация работы функции # Ввод числа n = input ( "n color: #ff0000;"># Вызов функции num = GetMinNum(n) print ( "num color: #333300;">⇑

Связанные темы

Источник

Вывести цифры числа через пробел

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

a = int(input()) while a > 0: d = a % 10 print(d, end=' ') a //= 10

Вывести числа главной диагонали через пробел
Дана квадратная матрица N*N Значения матрицы целые числа , N целое число на отрезке На вход.

Вывести через пробел три натуральных числа — площади каждого из участков после разбиения
Фермер владеет участком земли в форме прямоугольника с длинами сторон aa и bb. Недавно фермер.

Антиматерия. Вывести в одной строке через пробел все числа, для которых не было повторений в других сосудах.
Антиматерия образована почти из таких же структурных элементов, что и обычная материя – такая же.

Ввести в файл ‘input.txt’ 2 числа в одну строку через пробел. Вывести в файл ‘output.txt’ их разность
Нимогу решить,нихрена не научили ,а задания такие дают! Как можно текстовый файл в кавычках сделать.

Вывести цифры числа через пробел
Из "179" - "1 7 9" Дано натуральное число N. Выведите все его цифры по одной, в обычном порядке.

Источник

Как вывести все цифры числа в питоне

Видео доступно только для спонсоров проекта

Посмотреть данное видео на Boosty на Patreon

Оформить спонсорскую подписку можно на Youtube Boosty Patreon

Обход всех цифр числа

Нам нужно написать программу, которая могла обойти все цифры числа. Но так как мы изначально не знаем сколько разрядов будет в нашем числе, то для этого нужно использовать цикл while

Идея в следующем - пока наше введенное число будет больше нулю (т.е. в нем имеются цифры), мы в цикле будем получать последнюю цифру и затем ее убирать из числа. Ниже приведена программа, которая распечатывает все цифры числа в обратном порядке.

В этой программе мы делим нацело и по остатку на 10, потому что мы работаем с числом в десятичной системе счисления.

Но если вам нужно обойти цифры числа в другой системе счисления, замените значение 10 на нужное.

В видео смотрите подробности о том, как можно применять эту программу

Источник

Оцените статью