Задача
Сложность: ★✩✩✩✩ / ★★★★★
Пользователь вводит число n.
Сгенерировать список data вида [1, 0, 1, 0, ...] в котором будет ровно n элементов.
Примеры
Решение
Необходимо выполнить действие
<добавить 1, добавить 0 в список> n//2 раз.
Оператор // - целочисленное деление
A // B - деление A на B без остатка (сколько в числе А числа B, например 8 // 3 = 2, сколько троек в восьмерке?)
A, B - целые числа - A // B - всегда целое число
Программа корректно работает со всеми четными числами - 2, 4, 6, …
Но при тесте, например, n = 5 получим [1, 0, 1, 0]
При n = 7 получим [1, 0, 1, 0, 1, 0]
При нечетных n всегда получаем n-1 элементов в списке, причем не хватает всегда единицы (так как последний добавляемый элемент - 0)
Усовершенствуем решение так, чтобы оно покрывало все тесты
Оператор % - остаток от деления
A % B - остаток от деления A на B.
10 % 3 = 1, 10 % 5 = 0
A, B - целые числа - A % B - всегда целое число
С помощью % легко првереить четность числа.
Если N % 2 == 0 -> N - четное, иначе - нечетное
Также если A % B == 0, то A делится на B, иначе - нет
Такое решение проходит все тесты
Решение с помощью цикла while
Решение с помощью list comprehension
Предлагайте свои решения в комментарии :)