Не могу найти ошибку в коде . Python
`Задание 5 тема 5 Яндекс практикум основы Phyton , где ошибка?
Мой код :
DATABASE = {
'Серёга': 'Омск',
'Соня': 'Москва',
'Миша': 'Москва',
'Дима': 'Челябинск',
'Алина': 'Красноярск',
'Егор': 'Пермь',
'Коля': 'Красноярск'
}
def process_friend(name, query):
# Проверяем, есть ли имя name среди ключей словаря
if name in DATABASE:
city = DATABASE[name]
print (f'{name} в городе {city}')
else:
print (f'У тебя нет друга по имени {name}')# Если имя есть в словаре - проверяем, что передано в query
if query == 'ты где?':
# Если в переменной query передан вопрос "ты где?" -
# получаем из словаря значение (название города) по ключу name
city = DATABASE[name]
return (f'{name} в городе {city}')# тут строка "имя_друга в городе название_города"
else:
return '<неизвестный запрос>'
def format_friends_count(friends_count):
if friends_count == 1:
return '1 друг'
elif 2 <= friends_count <= 4:
return f'{friends_count} друга'
else:
return f'{friends_count} друзей'
def process_query(query):
elements = query.split(', ')
if elements[0] == 'Анфиса':
return process_anfisa(elements[1])
else:
return process_friend(elements[0],query)
def process_anfisa(query):
if query == 'сколько у меня друзей?':
count = len(DATABASE)
# Вызовите функцию format_friends_count() и передайте в неё count.
# Отредактируйте строку ниже: в ней должно использоваться выражение,
# которое вернёт функция format_friends_count()
return f'У тебя {format_friends_count(count)}.'
elif query == 'кто все мои друзья?':
friends_string = ', '.join(DATABASE)
return f'Твои друзья: {friends_string}'
elif query == 'где все мои друзья?':
unique_cities = set(DATABASE.values())
cities_string = ', '.join(unique_cities)
return f'Твои друзья в городах: {cities_string}'
else:
return '<неизвестный запрос>'
print('Привет, я Анфиса!')
print(process_query('Анфиса, сколько у меня друзей?'))
print(process_query('Анфиса, кто все мои друзья?'))
print(process_query('Анфиса, где все мои друзья?'))
print(process_query('Анфиса, кто виноват?'))
print(process_query('Соня, ты где?'))
print(process_query('Коля, что делать?'))
print(process_query('Антон, ты где?'))
Не принимает Мой результат :
Привет, я Анфиса!
У тебя 7 друзей.
Твои друзья: Серёга, Соня, Миша, Дима, Алина, Егор, Коля
Твои друзья в городах: Красноярск, Челябинск, Москва, Пермь, Омск
<неизвестный запрос>
Соня в городе Москва
None
Коля в городе Красноярск
None
У тебя нет друга по имени Антон
<неизвестный запрос>
А должно быть :
Привет, я Анфиса!
У тебя 7 друзей.
Твои друзья: Серёга, Соня, Миша, Дима, Алина, Егор, Коля
Твои друзья в городах: Красноярск, Челябинск, Москва, Пермь, Омск
<неизвестный запрос>
Соня в городе Москва
<неизвестный запрос>
У тебя нет друга по имени Антон
?что исправить?
Ответы (1 шт):
Автор решения: Medvedev
→ Ссылка
Логика: Проверяете текст на содержание в нем вопроса "ты где?", если нет этого вопроса, возвращаем '<неизвестный запрос>', если есть, проверяем далее по условию.
def process_friend(name, query):
# Проверяем, есть ли имя name среди ключей словаря
if 'ты где?' in query:
# Если в переменной query передан вопрос "ты где?" -
# получаем из словаря значение (название города) по ключу name
if name in DATABASE:
city = DATABASE[name]
return f'{name} в городе {city}'
else:
return f'У тебя нет друга по имени {name}'# Если имя есть в словаре - проверяем, что передано в query
else:
return '<неизвестный запрос>'
Функцию замените и получите нужный результат