Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Программирование на Python

Задание -
Это код Анфисы, который вы последовательно писали на протяжении нескольких тем. В него добавлена функция format_friends_count(), но она пока нигде не вызывается.
Перечитайте и запустите код: освежите в памяти, как обрабатываются запросы к Анфисе.
А после этого — за работу!
Научите Анфису говорить грамотно. В словаре DATABASE семь элементов, и на вопрос «Анфиса, сколько у меня друзей» программа отвечает: «У тебя 7 друзей».
Но если в словаре будет лишь один друг — Анфиса напишет «у тебя 1 друзей», а грамотные программы так не говорят!
Функцию со склонениями числительных вы уже написали, она добавлена в код. Осталось «прикрутить» её к Анфисе.
Из функции process_anfisa(), из блока if query == 'сколько у меня друзей?' вызовите функцию format_friends_count() и вставьте возвращаемую этой функцией фразу в f-строку так, чтобы на вопрос 'сколько у меня друзей' функция возвращала грамотный ответ, например, У тебя 9 друзей или У тебя 3 друга.

сам код

Дополнен

вот сам код - 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 '<неизвестный запрос>'

print('Привет, я Анфиса!')
print(process_anfisa('сколько у меня друзей?'))
print(process_anfisa('кто все мои друзья?'))
print(process_anfisa('где все мои друзья?'))
print(process_anfisa('кто виноват?'))

По дате
По рейтингу
Аватар пользователя
Ученик

попробуйте так:

1234567891011121314151617181920212223242526272829303132333435363738394041424344
 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 '<неизвестный запрос>'  
  
  
print('Привет, я Анфиса!')  
print(process_anfisa('сколько у меня друзей?'))  
print(process_anfisa('кто все мои друзья?'))  
print(process_anfisa('где все мои друзья?'))  
print(process_anfisa('кто виноват?')) 
Аватар пользователя
Ученик

как решили?

Аватар пользователя
Гуру

Никто не будет ваш код переписывать, чтобы помочь) Отправьте его текстом

Аватар пользователя
Знаток

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 '<неизвестный запрос>'


print('Привет, я Анфиса!')
print(process_anfisa('сколько у меня друзей?'))
print(process_anfisa('кто все мои друзья?'))
print(process_anfisa('где все мои друзья?'))
print(process_anfisa('кто виноват?'))