Вопрос задан 22.09.2023 в 22:09. Предмет Информатика. Спрашивает Алтунин Кирилл.

Сделаем так, чтобы можно было задавать вопросы не только Анфисе, но и самим друзьям, обращаясь к

ним по имени. А друзья ответят, в каком они городе. Добавим в запросы имена. Вопрос к Анфисе будет звучать так: Анфиса, где все мои друзья? Ответ на этот вопрос уже подготовлен, надо лишь немного изменить код. А вопрос к кому-то из друзей будет таким: Коля, ты где?. Анфиса должна ответить: Коля в городе Красноярск. Структура кода: в первую очередь теперь будет вызываться функция process_query(query) (вы сейчас её напишете), она получает запрос и разделяет его на имя и вопрос (например, запрос Анфиса, где все мои друзья? должен быть разделён на Анфиса и где все мои друзья?); если в запросе передано имя Анфиса — будет вызываться функция process_anfisa() с аргументом — вопросом (например — где все мои друзья?); Объявите в коде функцию process_query(query), в ней с помощью метода split() разделите строку query на две части: на имя и вопрос. После этого напишите проверку, ветвление if: если имя — «Анфиса», вызовите функцию process_anfisa(), при вызове передайте в неё аргументом вопрос, получившийся при разделении строки query. Верните результат выполнения этой функции. если же имя — не «Анфиса», то функция не должна делать вообще ничего: этот вариант обработаем в следующей задаче. Отредактируйте список вызовов функции, размещённый в конце программы: должна вызываться функция process_query(), вызовы должны выглядеть так: print(process_query('Текст_запроса')) все запросы должны начинаться с имени Анфиса: Анфиса, сколько у меня друзей? Анфиса, кто все мои друзья? Анфиса, где все мои друзья? Анфиса, кто виноват? добавьте ещё один вызов, для проверки: print(process_query('Соня, ты где?')). На этот запрос Анфиса вернет None, но не сломается. 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_anfisa(query): if query == 'сколько у меня друзей?': count = len(DATABASE) 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('кто виноват?'))
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кропачева Ксения.

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_anfisa(query):

   if query == 'сколько у меня друзей?':

       count = len(DATABASE)

       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):

   name, question = query.split(', ', 1)

   

   if name == 'Анфиса':

       return process_anfisa(question)

   else:

       return None

print('Привет, я Анфиса!')

print(process_query('Анфиса, сколько у меня друзей?'))

print(process_query('Анфиса, кто все мои друзья?'))

print(process_query('Анфиса, где все мои друзья?'))

print(process_query('Анфиса, кто виноват?'))

print(process_query('Соня, ты где?'))

Теперь код будет обрабатывать запросы как для Анфисы, так и для других имён, и возвращать соответствующие ответы.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для реализации возможности задавать вопросы не только Анфисе, но и другим друзьям по их именам, вы можете внести следующие изменения в ваш код:

python
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_anfisa(query): if query == 'сколько у меня друзей?': count = len(DATABASE) 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 '&lt;неизвестный запрос&gt;' def process_query(query): parts = query.split(', ') if len(parts) == 2: name, question = parts if name == 'Анфиса': return process_anfisa(question) return None print('Привет, я Анфиса!') print(process_query('Анфиса, сколько у меня друзей?')) print(process_query('Анфиса, кто все мои друзья?')) print(process_query('Анфиса, где все мои друзья?')) print(process_query('Анфиса, кто виноват?')) print(process_query('Соня, ты где?'))

Теперь у вас есть функция process_query, которая разделяет запрос на имя и вопрос, и затем вызывает process_anfisa или возвращает None, в зависимости от имени в запросе. Вы можете задавать вопросы как Анфисе, так и другим друзьям, и код будет обрабатывать их соответствующим образом.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос