n293
Ноя. 11, 2017 19:42:36
Всем привет!
Есть задачка:
Проверьте, есть ли среди данных 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
Ноя. 11, 2017 19:55:49
Решить в функциональном стиле. может так?
def zero(n):
for _ in range(n):
if input() == '0':
return True
return False
print(zero(int(input())))
n293
Ноя. 11, 2017 20:00:27
marvellik, вот что система выдает:
Precompile check failed:
no if allowed
Я уже делал аналогичную функцию, тоже верно отрабатывала, но результат одинаковый.
Видимо дело в проверяющей системе, все-таки.Ну и я в первом сообщении писал
If тоже отбраковывает.
Т.е. я не соображу как обойтись без if-а. В квадратные скобки тоже заворачивал, по типу:
0 in [int(input()) for _ in range(int(input()))]
Тоже отбраковывает проверяющая система.
marvellik
Ноя. 11, 2017 20:04:54
n293 ссылку на ресурс с задачей можно?
marvellik
Ноя. 11, 2017 20:18:57
там еще и платить нужно? увы я не могу просмотреть задачу но точно что без цикла вы не считаете n количества строк да и для этого n дана в задаче. вот без if можно
print(0 in [int(input()) for _ in range(int(input()))])
n293
Ноя. 11, 2017 20:21:40
marvellik
там еще и платить нужно? увы я не могу просмотреть задачу но точно что без цикла вы не считаете n количества строк да и для этого n дана в задаче. вот без if можно
да, это платный курс

А с for выдает аналогичное, кстати:
Precompile check failed:
no for allowed
n293
Ноя. 11, 2017 20:27:22
Не знаю, может натолкну на мысли:
В этом уроке рассказывалось про itertools (combinations, permutations, accumulate), fuctools (partial, reduce), про стандартные функции (sum, min, max, map, filter(predicate, iterable), enumerate, any, all, zip(iterA, iterB, …))
Может что-то из этого добра вместо цикла подойдет?
marvellik
Ноя. 11, 2017 20:36:33
функции работают с структурами данных поэтому их надо как то получить.
n293
Ноя. 11, 2017 20:37:19
Все, нашлось решение!
from itertools import repeat
print(0 in list(map(lambda r: int(r()), repeat(input, int(input())))))
Коллеги с тостера помогли.