Найти - Пользователи
Полная версия: Затык в яндекс практикуме
Начало » Центр помощи » Затык в яндекс практикуме
1
Katerina_25
Здравствуйте. Прохожу бесплатный модуль в практикуме, уперлась во 2й задаче “запросы к друзьям”.

Часть кода дописала, но при выводе выходит “неизвестный запрос”.

Задание: “Сделаем так, чтобы можно было задавать вопросы не только Анфисе, но и самим друзьям, обращаясь к ним по имени. А друзья ответят, в каком они городе.
Добавим в запросы имена. Вопрос к Анфисе будет звучать так: Анфиса, где все мои друзья? Ответ на этот вопрос уже подготовлен, надо лишь немного изменить код.
Если же имя — не «Анфиса», то функция пока не будет ничего делать, этот вариант обработаем в следующей задаче.”

Ниже код, я дописала функцию process_query(query)


 DATABASE = {
    'Серёга': 'Омск',
    'Соня': 'Москва',
    'Миша': 'Москва',
    'Дима': 'Челябинск',
    'Алина': 'Красноярск',
    'Егор': 'Пермь',
    'Коля': 'Красноярск'
}
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] == 'Анфиса': 
        process_anfisa(elements[2])
        return process_anfisa(elements[1])
    else: 
        return
    
def process_anfisa(query):
    if query == 'сколько у меня друзей?':
        count = len(DATABASE)
        format_friends_count(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('Анфиса, кто виноват?'))
print(process_query('Соня, ты где?'))
py.user.next
Используй теги code для передачи кода на форуме
[code python]
Тут пиши код
[/code]

Иначе форум стирает табуляции и списки, кавычки заменяет на фуфлокавычки. Потому что думает, что это просто текст, и соответственно, пытается этот текст украсить.
Katerina_25
py.user.next
Используй теги code для передачи кода на форуме
Отредактировала, спасибо
py.user.next
  
>>> DATABASE = {
...     'Серёга': 'Омск',
...     'Соня': 'Москва',
...     'Миша': 'Москва',
...     'Дима': 'Челябинск',
...     'Алина': 'Красноярск',
...     'Егор': 'Пермь',
...     'Коля': 'Красноярск'
... }
>>> 
>>> 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 '<неизвестное имя>'
... 
>>> def process_anfisa(query):
...     if query == 'сколько у меня друзей?':
...         count = len(DATABASE)
...         format_friends_count(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('Анфиса, сколько у меня друзей?'))
У тебя 7 друзей.
>>> print(process_query('Анфиса, кто все мои друзья?'))
Твои друзья: Серёга, Соня, Миша, Дима, Алина, Егор, Коля
>>> print(process_query('Анфиса, где все мои друзья?'))
Твои друзья в городах: Пермь, Красноярск, Челябинск, Омск, Москва
>>> print(process_query('Анфиса, кто виноват?'))
<неизвестный запрос>
>>> print(process_query('Соня, ты где?'))
<неизвестное имя>
>>>
Maeva79
 DATABASE = {
    'Серёга': 'Омск',
    'Соня': 'Москва',
    'Миша': 'Москва',
    'Дима': 'Челябинск',
    'Алина': 'Красноярск',
    'Егор': 'Пермь',
    'Коля': 'Красноярск'
}
def process_query(query):
    elements = query.split(', ')
    if elements[0] == 'Анфиса':
        return process_anfisa(elements[1])
    
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)
        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('Соня, ты где?'))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB