Деление всех цифр числа питон

Как разделить число на цифры в Python без списков и всего такого. Нужно использовать % или //.

num % 10 — получаешь самую правую цифру числа num
num = num // 10 — удаляешь самую правую цифру из числа num.

Повторяешь в цикле — пока num не станет равным нулю.

СПАСИБО.
Благодаря Вам написал код :
n = int(input())
if n%10==1 and n//10%10!=1:
print(n, «программист»)
elif n//10%10!=1 and (n%10==2 or n%10==3 or n%10==4):
print(n, «программиста»)
else:
print(n, «программистов»)

для такой вот задачи с повышенной сложностью. :
В институте биоинформатики по офису передвигается робот. Недавно студенты из группы программистов написали для него программу, по которой робот, когда заходит в комнату, считает количество программистов в ней и произносит его вслух: «n программистов».

Для того, чтобы это звучало правильно, для каждого nn нужно использовать верное окончание слова.

Напишите программу, считывающую с пользовательского ввода целое число nn (неотрицательное), выводящее это число в консоль вместе с правильным образом изменён
Вы — топ)

Андрей Высший разум (333244) ИМХО, твой код усложнён лишними проверками. Если сделать 4 ветки, код станет намного понятнее: if n // 10 % 10 == 1: print(n, «программистов») elif n % 10 == 1: print(n, «программист») elif 2

Читайте также:  Share web page html

Андрей Высший разум (333244) Каха, Например, через рекурсивную функцию: def dig(n): ~~if n >= 10: dig(n // 10) ~~print(n % 10)

print(37 / 3) # один слэш — это деление с ответом-дробью
print(37 // 3) # два слэша считают частное от деления нацело
# это как операция div в других языках
print(37 % 3) # процент считает остаток от деления нацело
# это как операция mod в других языках

Представить число как строку и пользоваться срезами:
a = 543
a = str(a)
print(a[0]) # >>> ‘5’
print(a[1]) # >>> ‘4’
print(a[2]) # >>> ‘3’

Если нужно только вывести числа на экран, то так
n=int(input())
while n>0:
print(n%10)
n//=10
Числа выводятся в порядке справа налево. 2 последние строки с отступом.

Источник

Как разбить число на цифры в 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() .

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

Генераторы списков (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”

Источник

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

Djaler

igoodmood: Опишите словами как вы будете это делать и получите алгоритм. Или с математикой у вас тоже проблемы?

Владимир Мартьянов: а здесь про ввод с клавиатуры, кстати, ничего не сказано. Отсюда делаю выводы, что у нас на входе целое число, а там уже что хотим, то с ним и делаем

Владимир Мартьянов: с математикой проблем нет, а вот с музой проблемы возникли. Ну вот смотрите, есть число 123, мне нужно разделить его на три отдельные цифры(1,2,3) Первое действие я знаю(123/100=1,23), а вот как дальше?

число = 123 первое_число = число div 100 второе_число = (число div 10) mod 10 третье_число = число mod 10

Djaler

angru

a = 368 for x in [100, 10, 1]: print(a // x) # целочисленное деление a %= x # остаток от деления

версия для произвольного положительного числа:

from math import log10 a = 1234567890 assert a >= 0, "только для положительных значений" for x in range(int(log10((a // 10 * 10) or 1)), -1, -1): x = 10 ** x print(a // (x)) a %= x

antonsosnitzkij

Есть довольно интересный метод решения задачи: double dabble.
Двоичный код мы превращаем в двоично-десятичный: каждая цифра числа представлена в виде 4х битов. Способ решения может показаться не самым оптимальным, но определенно является оригинальным и к тому же не требует от железа использования операции деления и использования функции остатка от деления. В самой статье есть код и на VHDL и на C.

Тэг «железо» тут не при чем. Ваша задача решается при помощи строковых функций, смотрите что в вашем языке есть для выделения подстроки.

red_line_nes: Вероятно совсем, ибо вы не понимаете всю суть вопроса: Мне нужно с помощью математических манипуляций отделить от трехзначного числа КАЖДУЮ цифру.

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

igoodmood: тогда причем тут компьютеры, если вы пишете алгоритм НЕ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ?

математические манипуляции — делите на 100, отбрасываете дробное, получаете левую цифру.
Делите на 10, отбрасываете дробное, получаете вторую цифру.
Отнимаете от числа первое*100 и второе*10 получаете третью цифру.

igoodmood: вам уже дали ответ, конкретно математично это делением , к чему тут относится железо не понятно. И в чем разница между программой и алгоритмом?

Все просто:
‘это комментарий
For I = 1 To 3 ‘ цикл. 3ка это разрядность делимого числа. Хоть 100 разрядов.
x = Число Mod 10 ‘ Число должно быть байтом без запятых!
Print x ‘ вот тут появляется последняя цифра числа
Число = Число / 10 ‘ тут число лишается последней цифры
Next

‘Для понимания: другие варианты:

Dim Цифра(4) As Byte ‘ массив из байт (целые числа без запятой!)
Цифра(4) = 123 ‘разбиваем 123 на 1,2,3
Цифра(1) = Цифра(4) / 100 ‘123/100=1
Цифра(3) = Цифра(4) Mod 10 ‘остаток от деления 123 на 10 = 3
Цифра(4) = Цифра(4) / 10 ‘ 123/10=12
Цифра(2) = Цифра(4)mod 10 ‘ остаток от деления 12 на 10 =2

Print Цифра(1) ; Цифра(2) ; Цифра(3) ‘ 1 2 3 печатаем наши три цифры

‘ Второй вариант:
Dim I As Byte , Цифра(4) As Byte
Цифра(4) = 123 ‘разбиваем 123 на 1,2,3

For I = 3 To 1 ‘ цикл. 3ка это разрядность делимого числа. Хоть 100 разрядов. Но и массив должен быть такой же
Цифра(i) = Цифра(4) Mod 10
Цифра(4) = Цифра(4) / 10
Next
Print Цифра(1) ; Цифра(2) ; Цифра(3)

Источник

Деление всех цифр числа питон

25 декабря, 2020 kevich

При помощи операции нахождения остатка и целочисленного деления можно достаточно несложно вычислить любую цифру числа.

Рассмотрим программу получения цифр двузначного числа:

num = 17 a = num % 10 b = num // 10 print(a) print(b)

Результатом выполнения программы будут два числа:

То есть сначала мы вывели последнюю цифру числа, а затем первую цифру.

Запомни: последняя цифра числа определяется всегда как остаток от деления числа на 10 (% 10) . Чтобы отщепить последнюю цифру от числа, необходимо разделить его нацело на 10 (// 10) .

Рассмотрим программу получения цифр трёхзначного числа:

num = 754 a = num % 10 b = (num % 100) // 10 c = num // 100 print(a) print(b) print(c)

Результатом выполнения программы будут три числа:

То есть сначала мы вывели последнюю цифру числа, затем среднюю цифру, а затем первую цифру.

Алгоритм получения цифр n n -значного числа

Несложно понять, по какому алгоритму можно найти каждую цифру n n -значного числа num :

  • Последняя цифра: (num % 10 1 ) // 10 0 ;
  • Предпоследняя цифра: (num % 10 2 ) // 10 1 ;
  • Предпредпоследняя цифра: (num % 10 3 ) // 10 2 ;
  • …..
  • Вторая цифра: (num % 10 n-1 ) // 10 n-2 ;
  • Первая цифра: (num % 10 n ) // 10 n-1 .

Решение задач

Задача 1. Напишите программу, определяющую число десятков и единиц в двузначном числе.

Решение. Число единиц – это последняя цифра числа, число десятков – первая цифра. Чтобы получить последнюю цифру любого числа, нужно найти остаток от деления числа на 10. Чтобы найти первую цифру двузначного числа, нужно поделить число нацело на 10. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input()) last_digit = num % 10 first_digit = num // 10 print('Число десятков =', first_digit) print('Число единиц =', last_digit)

Задача 2. Напишите программу, в которой рассчитывается сумма цифр двузначного числа.

Решение. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input()) last_digit = num % 10 first_digit = num // 10 print('Сумма цифр =', last_digit + first_digit)

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

Решение. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input()) last_digit = num % 10 first_digit = num // 10 print('Искомое число =', last_digit * 10 + first_digit)

Задача 4. Напишите программу, в которую вводится трёхзначное число и которая выводит на экран его цифры (через запятую).

Решение. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input()) digit3 = num % 10 digit2 = (num // 10) % 10 digit1 = num // 100 print(digit1, digit2, digit3, sep=',')

Опубликовано в рубрике Разное

Источник

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