Вопрос задан 15.11.2023 в 01:05. Предмет Информатика. Спрашивает Смирнягин Дима.

Нужно решить задачу на питоне: Условия: Напишите программу, в которой пользователь вводит целое

число, а программа определяет, сколько в этом числе цифр 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:
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Руцинський Денис.

#Основной нулевой способ (без применения обхода строки в цикле, то есть обход идет строго по числу типа 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()

0 0
Отвечает Маснюк Мира.

Ответ:

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]}")

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения задачи, в которой пользователь вводит целое число, а программа определяет, сколько в этом числе цифр 0, 1, 2 и так далее, вы можете использовать следующий код на Python:

```python n = int(input("Введите целое число: ")) digits = [0] * 10

while n != 0: digit = n % 10 digits[digit] += 1 n //= 10

for i in range(10): print(f"Количество цифр {i}: {digits[i]}") ```

Объяснение:

1. Сначала мы просим пользователя ввести целое число с помощью функции `input()`, а затем преобразуем его в целое число с помощью `int()`. Мы сохраняем это число в переменной `n`.

2. Затем мы создаем список `digits`, который будет использоваться для подсчета количества каждой цифры. Мы заполняем его нулями для каждой цифры от 0 до 9.

3. Затем мы используем цикл `while` для перебора каждой цифры в числе. Мы берем остаток от деления числа на 10 с помощью оператора `%` и сохраняем его в переменной `digit`. Затем мы увеличиваем счетчик для соответствующей цифры в списке `digits` и делим число на 10 с помощью оператора `//` для перехода к следующей цифре. Мы продолжаем этот процесс до тех пор, пока число не станет равным 0.

4. Наконец, мы используем цикл `for` для вывода количества каждой цифры в списке `digits`. Мы используем функцию `range(10)`, чтобы перебрать каждую цифру от 0 до 9, и выводим количество каждой цифры с помощью функции `print()`.

Таким образом, программа определит, сколько введенного числа содержит цифр 0, 1, 2 и так далее.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос