• Составить программу, которая будет менять все четные числа в списке (массиве) ** 0 и...

+149 голосов
5.1m просмотров

• Составить программу, которая будет менять все четные числа в списке (массиве) на 0 и нечетные числа на 1. • Организовать введение данных в список с помощью цикла for i in range (n): (n – число, которое задает количество элементов в списке). Можно организовать введение чисел с помощью генератора случайных чисел или пользователем.


Информатика | 5.1m просмотров
Дан 1 ответ
+79 голосов

import typing

from typing import Callable

from typing import AnyStr

from typing import Any

from typing import Iterable

from typing import List

def ListTransform(Data: List[Any], Tranformer: Callable[[Any], Any], Selector: Callable[[Any], bool] = lambda p: True):

   '''Трансформирует элементы list, удовлетворяющие условию, в соответствии с заданным правилом

   По умолчанию трансформирует все элементы'''

   for index, item in enumerate(Data):

       if (Selector(item)):    

           Data[index] = Tranformer(item)

   return Data

def ReadSeq(SeqLen: int, CastType):

   '''

   Возвращает последовательность элементов в указанном типе, считанных с клавиатуры, заданной длины.

   '''

   try:

       for _ in range(SeqLen):

           yield CastType(input())

   except TypeError:

       raise RuntimeError(f'Unsupported type: {CastType}')

def main():

   n = int(input())

   Lst = list(ReadSeq(n, int))

   def Filter(number):

       if number % 2 == 0: return 1

       else: return 0

   print(*ListTransform(Lst, Filter))

 

if __name__ == "__main__":

   main()

(1.6k баллов)
+188

Слишком сложный юмор)