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