Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Центр помощи
  • » Задание по программированию: Ноль или не ноль. Решить в функциональном стиле. [RSS Feed]

#1 Ноя. 11, 2017 19:42:36

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

Всем привет!

Есть задачка:

Проверьте, есть ли среди данных 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())))))

Но что-то вообще не очень вышло. Помогите пожалуйста!

Отредактировано n293 (Ноя. 11, 2017 19:45:45)

Офлайн

#2 Ноя. 11, 2017 19:55:49

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

Решить в функциональном стиле. может так?

 def zero(n):
    for _ in range(n):
        if input() == '0':
            return True
    return False
print(zero(int(input())))

Отредактировано marvellik (Ноя. 11, 2017 19:58:11)

Офлайн

#3 Ноя. 11, 2017 20:00:27

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

marvellik, вот что система выдает:

Precompile check failed:
no if allowed

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

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

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

Тоже отбраковывает проверяющая система.

Отредактировано n293 (Ноя. 11, 2017 20:03:37)

Офлайн

#4 Ноя. 11, 2017 20:04:54

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

n293 ссылку на ресурс с задачей можно?

Офлайн

#5 Ноя. 11, 2017 20:05:32

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

marvellik
n293 ссылку на ресурс с задачей можно?
Пожалуйста: https://www.coursera.org/learn/python-osnovy-programmirovaniya/programming/9uqay/nol-ili-nie-nol/

Отредактировано n293 (Ноя. 11, 2017 20:05:49)

Офлайн

#6 Ноя. 11, 2017 20:18:57

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

там еще и платить нужно? увы я не могу просмотреть задачу но точно что без цикла вы не считаете n количества строк да и для этого n дана в задаче. вот без if можно

 print(0 in [int(input()) for _ in range(int(input()))])

Офлайн

#7 Ноя. 11, 2017 20:21:40

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

marvellik
там еще и платить нужно? увы я не могу просмотреть задачу но точно что без цикла вы не считаете n количества строк да и для этого n дана в задаче. вот без if можно
да, это платный курс

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

Precompile check failed:
no for allowed

Офлайн

#8 Ноя. 11, 2017 20:27:22

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

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

Может что-то из этого добра вместо цикла подойдет?

Офлайн

#9 Ноя. 11, 2017 20:36:33

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

функции работают с структурами данных поэтому их надо как то получить.

Офлайн

#10 Ноя. 11, 2017 20:37:19

n293
Зарегистрирован: 2017-11-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.

Все, нашлось решение!

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

Коллеги с тостера помогли.

Отредактировано n293 (Ноя. 11, 2017 20:37:34)

Офлайн

  • Начало
  • » Центр помощи
  • » Задание по программированию: Ноль или не ноль. Решить в функциональном стиле.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version