Форум сайта python.su
Здравствуйте. Прохожу бесплатный модуль в практикуме, уперлась во 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)
Офлайн
Используй теги code для передачи кода на форуме
[code python]
Тут пиши код
[/code]
Отредактировано py.user.next (Фев. 13, 2023 23:29:25)
Офлайн
py.user.nextОтредактировала, спасибо
Используй теги code для передачи кода на форуме
Офлайн
>>> 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('Соня, ты где?')) <неизвестное имя> >>>
Офлайн
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)
Офлайн