Найти - Пользователи
Полная версия: Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.
Начало » Центр помощи » Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.
1
n293
Всем привет!

Есть задачка:
Проверьте, есть ли среди данных N чисел нули.

Формат ввода

Вводится число N, а затем N чисел.

Формат вывода

Выведите True, если среди введенных чисел есть хотя бы один нуль, или False в противном случае.

Тест 1
Входные данные:
3
4
19
14
Вывод программы:
False



Тест 2
Входные данные:
7
8
8
8
12
12
11
28
Вывод программы:
False



Тест 3
Входные данные:
7
0
20
9
14
5
29
4
Вывод программы:
True

Мое решение:
 print(any(int(input()) == 0 for _ in range(int(input()))))


Принимающая система не хочет его принимать, хотя работает код нормально (руками проверял). Опытным путем было выяснено, что не хочет принимать из-за цикла for. Собственно, как изменить программу, чтобы избежать цикла?
If тоже отбраковывает.

Я пытался присобачить библиотеку itertools как-то так:
 from itertools import chain
print(any(int(input()) == 0 in chain(range(int(input())))))

Но что-то вообще не очень вышло. Помогите пожалуйста!
marvellik
Решить в функциональном стиле. может так?
 def zero(n):
    for _ in range(n):
        if input() == '0':
            return True
    return False
print(zero(int(input())))
n293
marvellik, вот что система выдает:
Precompile check failed:
no if allowed

Я уже делал аналогичную функцию, тоже верно отрабатывала, но результат одинаковый.
Видимо дело в проверяющей системе, все-таки.

Ну и я в первом сообщении писал
If тоже отбраковывает.

Т.е. я не соображу как обойтись без if-а. В квадратные скобки тоже заворачивал, по типу:
 0 in [int(input()) for _ in range(int(input()))]

Тоже отбраковывает проверяющая система.
marvellik
n293 ссылку на ресурс с задачей можно?
n293
marvellik
n293 ссылку на ресурс с задачей можно?
Пожалуйста: https://www.coursera.org/learn/python-osnovy-programmirovaniya/programming/9uqay/nol-ili-nie-nol/
marvellik
там еще и платить нужно? увы я не могу просмотреть задачу но точно что без цикла вы не считаете n количества строк да и для этого n дана в задаче. вот без if можно
 print(0 in [int(input()) for _ in range(int(input()))])
n293
marvellik
там еще и платить нужно? увы я не могу просмотреть задачу но точно что без цикла вы не считаете n количества строк да и для этого n дана в задаче. вот без if можно
да, это платный курс

А с for выдает аналогичное, кстати:

Precompile check failed:
no for allowed

n293
Не знаю, может натолкну на мысли:
В этом уроке рассказывалось про itertools (combinations, permutations, accumulate), fuctools (partial, reduce), про стандартные функции (sum, min, max, map, filter(predicate, iterable), enumerate, any, all, zip(iterA, iterB, …))

Может что-то из этого добра вместо цикла подойдет?
marvellik
функции работают с структурами данных поэтому их надо как то получить.
n293
Все, нашлось решение!

 from itertools import repeat
print(0 in list(map(lambda r: int(r()), repeat(input, int(input())))))

Коллеги с тостера помогли.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB