Нужно решить задачу на питоне:
Условия:
Напишите программу, в которой пользователь вводит целое число, а программа определяет, сколько в этом числе цифр 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:
Answers & Comments
#Основной нулевой способ (без применения обхода строки в цикле, то есть обход идет строго по числу типа 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()
Ответ:
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]}")