@Rake970
Учусь языку Python

Что не так с кодом?

DATABASE = {
    'Серёга': 'Омск',
    'Соня': 'Москва',
    'Миша': 'Москва',
    'Дима': 'Челябинск',
    'Алина': 'Красноярск',
    'Егор': 'Пермь',
    'Коля': 'Красноярск'
}

# Новая функция, она возвращает правильное словосочетание, склоняя слово "друзья" 
# в зависимости от того, какое число передано в аргументе friends_count
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_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 '<неизвестный запрос>'

def process_query(query):
    elements = query.split(', ')
    if elements[0] == 'Анфиса':
        return process_anfisa(elements[1])
    else:
        return process_friend(elements[0],elements[1])
    
print('Привет, я Анфиса!')
print(process_anfisa('сколько у меня друзей?'))
print(process_anfisa('кто все мои друзья?'))
print(process_anfisa('где все мои друзья?'))
  • Вопрос задан
  • 680 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Всё в порядке, код работает, если взять версию с нормальными отступами


Привет, я Анфиса!
У тебя 7 друзей.
Твои друзья: Серёга, Соня, Миша, Дима, Алина, Егор, Коля
Твои друзья в городах: Красноярск, Пермь, Челябинск, Омск, Москва

Можно придраться к функции format_friends_count, тк если в неё передать 22, то она выдаст результат "22 друзей"
Можно придраться к тому что список друзей хранится как объект => имена должны быть уникальными.
Можно придраться к тому, что в "базе данных" с друзьями хранится только город, в котором они находятся.
Можно придраться к дублированию данных, тк если есть два друга в одном городе - придётся дважды писать этот город.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы