Предмет: Информатика,
автор: xxxx07882
С клавиатуры вводится трёхзначное число. Нужно вывести ответ «Да», если все его цифры четные, и ответ «Нет» в остальных случаях.
Python
Ответы
Автор ответа:
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:
А вот пройдёт пару недель, и попроси вас объяснить, что вообще происходит в этой програмке, сможете объяснить?)
Я вот вообще не могу вникнуть, как ваше творение должно проверять чётность всех цифр в числе
зачем нужна проверка if i == len(a) - 1: break, если вы могли просто задать правую границу range() как len(a) -1, а не просто len(a)? Ваша программа будет как минимум каждую итерацию цикла тратить время на высчитывание len(a) и сравнивание этой величины
Да и вообще, я таки вник, вы проверяете что в числе все цифры одинаковые. А просят чётность.
спасибо за то что указали на ошибку
Автор ответа:
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()
Похожие вопросы
Предмет: Русский язык,
автор: Spionner
Предмет: Русский язык,
автор: kirito001
Предмет: Русский язык,
автор: shlarisa80
Предмет: Математика,
автор: 04042006n
Предмет: Литература,
автор: Нина1800