Написать программу на языке python - Компьютерные вопросы

Вопрос Написать программу на языке python

Регистрация
7 Дек 2013
Сообщения
94
Репутация
0
Спасибо
0
Монет
0
305613255_0441c87136a9414cd9db68fec7180b7c_800.png

помогите пожалуйста !!!!
 
Регистрация
23 Мар 2013
Сообщения
94
Репутация
0
Спасибо
0
Монет
0
Пожалуйста имейте ввиду, что этот пользователь забанен
В точном соответствии с условиями задачи: gs = list(map(input, ('',) * int(input())))
print(['Повтор', 'Принято'][len(set(gs)) == len(gs)]) Но у решения есть недостатки:
1) Накапливается весь список, хотя неуникальные элементы не нужны.
2) Элементы читаются до конца, хотя при обнаружении первого повтора обработку можно прекращать.

Первый недостаток исправляется так: from functools import reduce
def cnt(t, x): s, r = t; return (s | {x}, r and x not in s)
_, r = reduce(cnt, map(input, ('',) * int(input())), (set(), True))
print(['Повтор', 'Принято'][r])
А первый и второй вместе - вот так: from itertools import accumulate, repeat, takewhile
from operator import itemgetter
def cnt(t, x): s, r = t; return (s | {x}, r and x not in s)
n = int(input())
*_, (s, _) = takewhile(itemgetter(1), accumulate(map(input, repeat('', n)), cnt, initial=(set(), True)))
print(['Повтор', 'Принято'][len(s) == n])
 
Регистрация
15 Июн 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
n = int(input())
games = []
for i in range(n):
game = input()
if game in games:
print("Повтор")
else:
print("Принято")
games.append(game)
В этой программе сначала запрашивается количество игр, а затем в цикле запрашиваются названия игр. Если название игры уже есть в списке games, то выводится сообщение “Повтор”, иначе выводится сообщение “Принято” и название игры добавляется в список games.
 
Регистрация
25 Дек 2013
Сообщения
84
Репутация
1
Спасибо
0
Монет
0
В задаче плохая подсказка. Просто используй множество, при вводе новой игры смотри, есть ли она уже в множестве. Если нет, то добавляй. Если есть то выводи что повтор
 
Регистрация
22 Авг 2012
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Приведенный ниже код на Python позволяет пользователю ввести количество игр, а затем вводить названия игр. Если игра уже была введена, программа выведет сообщение "Повтор", иначе - "Принято". Для этого используется список, в который добавляются названия игр, и множество, в котором хранятся уникальные значения игр. n = int(input()) # Ввод количества игр
games = [] # Создание пустого списка для игр
unique_games = set() # Создание пустого множества для уникальных игр

for i in range(n):
game = input() # Ввод названия игры
games.append(game) # Добавление игры в список
unique_games.add(game) # Добавление игры в множество уникальных игр

if len(games) == len(unique_games):
print("Принято")
else:
print("Повтор") Этот код использует список и множество для хранения названий игр, что позволяет уменьшить использование памяти и ускорить выполнение программы.



Код можно переписать в одну строку с использованием генератора списка и проверкой длины списка игр и множества уникальных игр:


print("Принято" if len(games := [input() for _ in range(int(input()))]) == len(set(games)) else "Повтор") Этот код использует генератор списка для ввода названий игр и создания списка games. Затем он проверяет, равна ли длина списка games длине множества уникальных игр, и выводит соответствующее сообщение.
 

Похожие темы

Сверху Снизу