Помогите решить задачу в яндекс-практикуме Python
Задача 3
Бот Анфиса и бот Алиса хотят сыграть во что-нибудь по сети. Каждая из них составила список игр, в которые она умеет играть. Списки, конечно же, разные, но, возможно, найдутся игры, которые знакомы им обеим.
Вам нужно написать программу, которая найдёт одинаковые элементы в двух списках.
Допишите функцию get_together_games(): она должна принимать на вход два списка, а возвращать — множество игр, названия которых есть в обоих списках.
Напечатайте получившийся перечень игр, разделяя элементы эмоджи ?.
—————————————————————————————————————————-
def get_together_games(. ):
# Напишите здесь код функции
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]
def get_together_games(list1, list2):
~~return list(set(list1) & set(list2))
В четвёртой строке ошибка в конце. А яндекс выдаёт, при таком раскладе, ошибку в последней строке. Хотя ответ и выводится.
Неверное значение объекта, для которого вызывается join.
Вызывайте метод join с разделителем . и аргументом together_games
def get_together_games(games_1,games_2):
# Напишите здесь код функции для поиска пересечений together_games=set(games_1).intersection(set(games_2))
return together_games
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]# Вызовите функцию со списками игр в качестве параметров
together_games = get_together_games(anfisa_games, alisa_games)
# Напечатайте итоговый перечень игр в цикле
for game in together_games:
print(‘?’,game)
Сделал
у меня таже проблема.
вписал все параметры кода, как выше, но код не работает.
в чем может быть проблема?
Юрий Он, я закончила код так и у меня всё сработало: 21 for game in together_games: 22 print(‘?’,game)
Привет! Думаю это можно написать чуток проще) Всё равно оба ответа верны 😀
ребята, подскажите, пожалуйста, как вы само окошко с кодом расширили, у меня просто только 10 строчек видно, а дальше вниз листать надо
Traceback (most recent call last):
File «main.py», line 24, in
NameError: name ‘games’ is not defined
здравствуйте, мне вот такую ошибку выдает.
подскажете, что не так?
def get_together_games(list_1, list_2):
new_1 = set(list_1)
new_2 = set(list_2)
return new_1.intersection(new_2)
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]# Вызовите функцию со списками игр в качестве параметров
together_games=get_together_games(anfisa_games,alisa_games)
# Напечатайте итоговый перечень игр в цикле
for game in together_games:
print(‘. ‘, games)
То же самое со слегка упрощенной функцией
def get_together_games(anfisa_games, alisa_games):
return together_games
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]# Вызовите функцию со списками игр в качестве параметров
together_games = set(anfisa_games).intersection(set(alisa_games))
get_together_games(anfisa_games, alisa_games)
# Напечатайте итоговый перечень игр в цикле
for game in together_games:
print(‘?’, game)
def get_together_games(games_1, games_2):
# Напишите здесь код функции для поиска пересечений
# Вызовите функцию со списками игр в качестве параметров
together_games = get_together_games(anfisa_games, alisa_games)
# Напечатайте итоговый перечень игр в цикле
for game in together_games:
def get_together_games(anfisa_games, alisa_games):
for together_games in get_together_games(anfisa_games, alisa_games):
def get_together_games(games_1, games_2):
together_games = set(games_1).intersection(set(games_2))
return together_games
# Напишите здесь код функции для поиска пересечений
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]
alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]
# Вызовите функцию со списками игр в качестве параметров
together_games = get_together_games(anfisa_games, alisa_games)
# Напечатайте итоговый перечень игр в цикле
for game in together_games:
print(‘?’,game)
А у меня такой вариант приняли:
У меня так сработало
def get_together_games(games_1, games_2):
together_games = set(games_1).intersection(set(games_2))
return together_games
# Напишите здесь код функции для поиска пересечений
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]
alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]
# Вызовите функцию со списками игр в качестве параметров
together_games = get_together_games(anfisa_games, alisa_games)
# Напечатайте итоговый перечень игр в цикле
for game in together_games:
print(«? » + game)
def get_together_games(anfisa_games, alisa_games):
return set(anfisa_games).intersection(set(alisa_games))
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]
alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]
# Вызовите функцию со списками игр в качестве параметров
together_games = get_together_games(anfisa_games, alisa_games)
# Напечатайте итоговый перечень игр в цикле
for game in together_games:
print(‘?’, game)
def get_together_games(list1,list2):
new_set1 = set(list1)
new_set2 = set(list2)
return new_set1.intersection(list2)
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]
alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]
together_games = get_together_games(anfisa_games, alisa_games)
for i in together_games:
print(‘?’,i)
Вот это я тупанул. 5 часов сидел. Первое задание где я так жестко .
С этим я бы точно сам не разобрался:
def get_together_games(list1,list2):
new_set1 = set(list1)
new_set2 = set(list2)
return new_set1.intersection(list2)
Поясните еще про: return new_set1.intersection(list2)
Почему list2, а не set2?
def get_together_games(games_1, games_2):
together_games = set(games_1).intersection(set(games_2))
return together_games
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]
alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]
# Вызовите функцию со списками игр в качестве параметров
together_games = get_together_games(anfisa_games, alisa_games)
# Напечатайте итоговый перечень игр в цикле
for games in together_games:
print(‘?’, games)
def get_together_games(games_1, games_2):
# Напишите здесь код функции для поиска пересечений
together_games=set(games_1).intersection(set(games_2))
return together_games
anfisa_games = [
‘Online-chess’,
‘Города’,
‘DOOM’,
‘Крестики-нолики’
]
alisa_games = [
‘DOOM’,
‘Online-chess’,
‘Города’,
‘GTA’,
‘World of tanks’
]
# Вызовите функцию со списками игр в качестве параметров
together_games = get_together_games(anfisa_games, alisa_games)
# Напечатайте итоговый перечень игр в цикле
for game in together_games:
print(‘?’,game)
Яндекс Практикум python
Сделаем так, чтобы можно было задавать вопросы не только Анфисе, но и самим друзьям, обращаясь к ним по имени. А друзья ответят, в каком они городе.
Добавим в запросы имена. Вопрос к Анфисе будет звучать так: Анфиса, где все мои друзья? Ответ на этот вопрос уже подготовлен, надо лишь немного изменить код.
А вопрос к кому-то из друзей будет таким: Коля, ты где?. Анфиса должна ответить: Коля в городе Красноярск.
Структура кода:
в первую очередь теперь будет вызываться функция process_query(query) (вы сейчас её напишете), она получает запрос и разделяет его на имя и вопрос (например, запрос Анфиса, где все мои друзья? должен быть разделён на Анфиса и где все мои друзья?);
если в запросе передано имя Анфиса — будет вызываться функция process_anfisa() с аргументом — вопросом (например — где все мои друзья?);
Объявите в коде функцию process_query(query), в ней с помощью метода split() разделите строку query на две части: на имя и вопрос.
После этого напишите проверку, ветвление if:
если имя — «Анфиса», вызовите функцию process_anfisa(), при вызове передайте в неё аргументом вопрос, получившийся при разделении строки query. Верните результат выполнения этой функции.
если же имя — не «Анфиса», то функция пока не будет ничего делать, этот вариант обработаем в следующей задаче.
Отредактируйте список вызовов функции, размещённый в конце программы:
должна вызываться функция process_query(), вызовы должны выглядеть так:
print(process_query(‘Текст_запроса’))
все запросы должны начинаться с имени Анфиса:
Анфиса, сколько у меня друзей?
Анфиса, кто все мои друзья?
Анфиса, где все мои друзья?
Анфиса, кто виноват?
добавьте ещё один вызов, для проверки: print(process_query(‘Соня, ты где?’)). На этот запрос Анфиса вернет None, но не сломается.
Подсказка
Методом split() преобразуйте строку query в список. Чтобы выделить имя и вопрос в отдельные элементы списка, надо в методе split() указать разделитель: elements = query.split(‘, ‘). В результате из запроса Анфиса, где все мои друзья? получится список из двух элементов: [‘Анфиса’, ‘где все мои друзья?’]
В списке elements имя будет храниться в элементе с индексом 0. Именно этот элемент надо проверять в ветвлении: if elements[0] == ‘Анфиса’. Соблюдайте отступы: четыре — в теле функции, ещё четыре — под if.
Если условие истинно — нужно вернуть результат работы функции process_anfisa(), в которую передан вопрос (он хранится в elements[1])
def process_query(query):
.
if name == ‘Анфиса’:
# Вернуть вызов функции process_anfisa(elements[1])
Вернуть результат выполнения функции можно через инструкцию return:
return process_anfisa(elements[1]).
помогите решить, вот исходный код
DATABASE = <
‘Серёга’: ‘Омск’,
‘Соня’: ‘Москва’,
‘Миша’: ‘Москва’,
‘Дима’: ‘Челябинск’,
‘Алина’: ‘Красноярск’,
‘Егор’: ‘Пермь’,
‘Коля’: ‘Красноярск’
>
def format_friends_count(friends_count):
if friends_count == 1:
return ‘1 друг’
elif 2 return f’ друга’
else:
return f’ друзей’
def process_query(query):
elements = query.split(‘, ‘)
name = elements[0]
if name == ‘Анфиса’:
def process_anfisa(query):
if query == ‘сколько у меня друзей?’:
count = len(DATABASE)
# Вызовите функцию format_friends_count() и передайте в неё count.
# Отредактируйте строку ниже: в ней должно использоваться выражение,
# которое вернёт функция format_friends_count()
return f’У тебя .’
elif query == ‘кто все мои друзья?’:
friends_string = ‘, ‘.join(DATABASE)
return f’Твои друзья: ‘
elif query == ‘где все мои друзья?’:
unique_cities = set(DATABASE.values())
cities_string = ‘, ‘.join(unique_cities)
return f’Твои друзья в городах: ‘
else:
return »
print(‘Привет, я Анфиса!’)
print(process_anfisa(‘сколько у меня друзей?’))
print(process_anfisa(‘кто все мои друзья?’))
print(process_anfisa(‘где все мои друзья?’))
print(process_anfisa(‘кто виноват?’))
Яндекс практикум, Python
Помогите решить данную задачу, сколько не пытался — не выходит
id_string = input(«Введите список ID, разделенных пробелами: «)
id_list = id_string.split() # разбиваем строку на список ID
id_set = set(id_list) # удаляем дубликаты, превращая список в множество
if len(id_list) != len(id_set): # проверяем наличие дубликатов
print(«Найден дубликат ID»)
id_list = sorted(id_set, key=int) # сортируем список ID по возрастанию
print(«Список ID без дубликатов, отсортированный по возрастанию: «, » «.join(id_list))
Благодарю! Единственный момент — по условию необходимо возвращать дублирующиеся ID, вот как раз с этим проблема (пробывал через цикл — но результат дробит на элементы (10 превращайся в 1, 0). Как можно реализовать вышеуказанное с учетом возврата дубликата ID («найден дубликат ID “10”). Заранее благодарю ?
split(‘ ‘) — разбиение строки на массив по пробелам
set(id_string) — создание множества, то есть удаление дубликатов
id_string.sort() — сортировка
«Найден дубликат» — если длина исходного списка не равна длине сета
Благодарю! Единственный момент — по условию необходимо возвращать дублирующиеся ID, вот как раз с этим проблема (пробывал через цикл — но результат дробит на элементы (10 превращайся в 1, 0). Как можно реализовать вышеуказанное с учетом возврата дубликата ID («найден дубликат ID “10”). Заранее благодарю