Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 13, 2023 15:36:51

Katerina_25
Зарегистрирован: 2023-02-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Затык в яндекс практикуме

Здравствуйте. Прохожу бесплатный модуль в практикуме, уперлась во 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('Соня, ты где?'))

Отредактировано Katerina_25 (Фев. 14, 2023 10:38:15)

Офлайн

#2 Фев. 13, 2023 23:27:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Затык в яндекс практикуме

Используй теги code для передачи кода на форуме

[code python]
Тут пиши код
[/code]

Иначе форум стирает табуляции и списки, кавычки заменяет на фуфлокавычки. Потому что думает, что это просто текст, и соответственно, пытается этот текст украсить.



Отредактировано py.user.next (Фев. 13, 2023 23:29:25)

Офлайн

#3 Фев. 14, 2023 10:38:45

Katerina_25
Зарегистрирован: 2023-02-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Затык в яндекс практикуме

py.user.next
Используй теги code для передачи кода на форуме
Отредактировала, спасибо

Офлайн

#4 Фев. 14, 2023 22:52:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Затык в яндекс практикуме

  
>>> 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('Соня, ты где?'))
<неизвестное имя>
>>>



Офлайн

#5 Авг. 31, 2023 23:17:18

Maeva79
Зарегистрирован: 2023-08-31
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Затык в яндекс практикуме

 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('Соня, ты где?'))

Отредактировано Maeva79 (Авг. 31, 2023 23:17:50)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version