Нужно решить задачу на питоне: Условия:
Напишите программу, в которой пользователь вводит целое число, а программа определяет, сколько в этом числе цифр 0,1,2 и так далее
Начала делать вот так, а потом застряла
n = int(input("Введите целое число"))
numbers = [1,2,3,4,5,6,7,8,9,0]
for s in numbers:
if n in numbers:

Katherine1236 Katherine1236    1   08.02.2022 07:16    2

Ответы
ВладИК08123 ВладИК08123  08.02.2022 07:20

#Основной нулевой (без применения обхода строки в цикле, то есть обход идет строго по числу типа int, функций, исключений, словарей). Применяется строковый метод isdigit, который проверяет состоит ли строка из цифр.

num = input('Введите целое число: ')

list_digits = [0] * 10

if num.isdigit():

    num = int(num)

    if num == 0:

       list_digits[0] = 1

       

    while num != 0:

        list_digits[num % 10] += 1  

        num //=10

   

    for digit in range(10):

       

        print(f'Цифра: {digit}, количество: {list_digits[digit]}')

           

else:

   print('Число должно быть типа int')

#Основной нулевой , но с применением обхода по строке (не факт, что так можно, но пусть будет)

str_num = input('Введите целое число: ')

list_digits = [0] * 10

if str_num.isdigit():

   for str_digit in str_num:

       list_digits[int(str_digit)] += 1  

       

   for digit in range(10):

       print(f'Цифра: {digit}, количество: {list_digits[digit]}')

               

else:

  print('Число должно быть типа int')

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

# Первый (без применения обхода строки в цикле)

def main():

   

   try:

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

       '''

       При вводе числа с клавиатуры число будет типа str по умолчанию, поэтому,

       если в строке будут символы помимо цифр от 0 до 9, то при воздействии на него функции

       int происходит ошибка ValueError, число типа 078 автоматически воспринимаются без

       нулей вначале

       '''

       dict_of_digits = {n:0 for n in range(10)}  

     

       if num == 0:

           dict_of_digits[0] = 1

       

       while num != 0:

           dict_of_digits[num % 10] += 1  

           num //=10

       

       for digit, quanity_digits in dict_of_digits.items():

           print(f'Цифра: {digit}, количество: {quanity_digits}')

           

   except ValueError:

       

       print('Число должно быть типа int, попробуйте снова!')

       main()

main()

# второй с применением обхода по строке

def main():

   

   try:

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

       '''

       При вводе числа с клавиатуры число будет типа str по умолчанию, поэтому,

       если в строке будут символы помимо цифр от 0 до 9, то при воздействии на него функции

       int происходит ошибка ValueError, число типа 078 автоматически воспринимаются без

       нулей вначале

       '''

       str_num = str(num)

       

       dict_of_digits = {n:0 for n in range(10)}  

       

       for str_digit in str_num:

           dict_of_digits[int(str_digit)] += 1  

       

       for digit, quanity_digits in dict_of_digits.items():

           print(f'Цифра: {digit}, количество: {quanity_digits}')

           

   except ValueError:

       

       print('Число должно быть типа int, попробуйте снова!')

       main()

main()

ПОКАЗАТЬ ОТВЕТЫ
ostapenkonatasha ostapenkonatasha  08.02.2022 07:20

k = int(input("Введите целое число: "))

k = list(str(k))

h=[]

for i in k:

i=int(i)

h.append(i)

slovar={0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0}

for i in h:

slovar[i]+=1

for i in slovar:

print(f"{i} ---> {slovar[i]}")

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика