ВАЖНОЕ замечание Целью данного урока было показать основы работы с цифрами числа и структурное единообразие таких программ, не отвлекаясь на достаточно значимые частные случаи: например, приведённая программа для подсчёта произведения будет выводить 1 для чисел, в которых вообще нет нечётных чисел. Полная программа должна выглядеть так: # Произведение нечётных цифр a = int(input()) p = 1 flag = False while a: d = a % 10 if d % 2: s *= d flag = True a //= 10 print(p if flag else 'В данном числе нет нечётных цифр') Здесь дополнительно используется переменная flag, которая позволяет отделить случай, когда в числе из нечётных цифр только единицы, от случая, когда вообще нет нечётных цифр. Аналогично можно поступить с суммой, если нам это важно: # Сумма чётных цифр числа a = int(input()) s = 0 flag = False while a: d = a % 10 if d % 2 == 0: s += d flag = True a //= 10 print(s if flag else 'В данном числе нет чётных цифр') А вот в программе подсчтёта количества цифр переменная-счётчик сама играет роль флага: # количество кратных трём цифр a = int(input()) c = 0 while a: d = a % 10 if d % 3 == 0: c += 1 a //= 10 print(c if c else 'В данном числе нет цифр, кратных 3') Ещё примечание: в качестве параметра функции print() в этих программах передаётся значение, полученное с помощью так называемого тернарного условного оператора (я подробно рассказывал о нём в других видео). Строка print(s if flag else 'В данном числе нет чётных цифр') может быть заменена следующими четырьмя строками: if flag: print(s) else: print('В данном числе нет чётных цифр')
Примечание. Чтобы программа работала не только для натуральных, но и для любых целых чисел, достаточно добавить функцию модуля в первую строку программы: a = abs(int(input()))
Спасибо большое!!!! 👍👍👍👍👍👍👍
ВАЖНОЕ замечание
Целью данного урока было показать основы работы с цифрами числа и структурное единообразие таких программ, не отвлекаясь на достаточно значимые частные случаи:
например, приведённая программа для подсчёта произведения будет выводить 1 для чисел, в которых вообще нет нечётных чисел. Полная программа должна выглядеть так:
# Произведение нечётных цифр
a = int(input())
p = 1
flag = False
while a:
d = a % 10
if d % 2:
s *= d
flag = True
a //= 10
print(p if flag else 'В данном числе нет нечётных цифр')
Здесь дополнительно используется переменная flag, которая позволяет отделить случай, когда в числе из нечётных цифр только единицы, от случая, когда вообще нет нечётных цифр.
Аналогично можно поступить с суммой, если нам это важно:
# Сумма чётных цифр числа
a = int(input())
s = 0
flag = False
while a:
d = a % 10
if d % 2 == 0:
s += d
flag = True
a //= 10
print(s if flag else 'В данном числе нет чётных цифр')
А вот в программе подсчтёта количества цифр переменная-счётчик сама играет роль флага:
# количество кратных трём цифр
a = int(input())
c = 0
while a:
d = a % 10
if d % 3 == 0:
c += 1
a //= 10
print(c if c else 'В данном числе нет цифр, кратных 3')
Ещё примечание: в качестве параметра функции print() в этих программах передаётся значение, полученное с помощью так называемого тернарного условного оператора (я подробно рассказывал о нём в других видео).
Строка print(s if flag else 'В данном числе нет чётных цифр')
может быть заменена следующими четырьмя строками:
if flag:
print(s)
else:
print('В данном числе нет чётных цифр')
Примечание. Чтобы программа работала не только для натуральных, но и для любых целых чисел, достаточно добавить функцию модуля в первую строку программы:
a = abs(int(input()))