Информатика, вопрос задал xxxx07882 , 2 года назад

С клавиатуры вводится трёхзначное число. Нужно вывести ответ «Да», если все его цифры четные, и ответ «Нет» в остальных случаях.
Python

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

Ответил timkafey
1

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

b = len(a)

for i in a:

  if int(i) % 2 != 0: b -= 1

if b == len(a): print('Да')

else: print('Нет')


KnowsUser1: А вот пройдёт пару недель, и попроси вас объяснить, что вообще происходит в этой програмке, сможете объяснить?)
KnowsUser1: Я вот вообще не могу вникнуть, как ваше творение должно проверять чётность всех цифр в числе
KnowsUser1: зачем нужна проверка if i == len(a) - 1: break, если вы могли просто задать правую границу range() как len(a) -1, а не просто len(a)? Ваша программа будет как минимум каждую итерацию цикла тратить время на высчитывание len(a) и сравнивание этой величины
KnowsUser1: Да и вообще, я таки вник, вы проверяете что в числе все цифры одинаковые. А просят чётность.
timkafey: спасибо за то что указали на ошибку
Ответил KnowsUser1
0

Ответ:

import typing

from typing import Any

from typing import AnyStr

from typing import Callable

def NumericStringScan(NumString: AnyStr, predicate: Callable[[int], bool]):

   for digit in NumString:

       if not predicate(int(digit)): return False

   return True

def main():

   NumString = input('Enter number to analyse:\n')

   IsAllDigitEven = NumericStringScan(NumString, lambda d: d % 2 == 0)

   print('Да' if (IsAllDigitEven) else 'Нет')

   

if __name__ == "__main__":

   main()

Новые вопросы