Дано задание:
На серверы приходит множество запросов — от разных пользователей или от других серверов. Измените функцию process_query() (обработчик запроса), чтобы она поддерживала несколько разных запросов, а не только один.
Добавьте аргумент query в функцию process_query(). Этот аргумент будет сообщать, какой именно запрос необходимо обработать.
В начало функции process_query() добавьте проверку значения переменной query:
если значение равно 'Сколько у меня друзей?' — выведите ответ на этот вопрос, как в предыдущем задании;
в противном случае — выведите '<неизвестный запрос>';
Анфиса должна здороваться при любом запросе.
Добавьте вызов process_query('Сколько у меня друзей?') в основное тело программы.
Добавьте ещё один вызов process_query('Как меня зовут?') в основное тело программы.
Подсказка
Используйте сравнение if query == ... для определения запроса.
Начальный код:
FRIENDS = ['Серёга', 'Соня', 'Дима', 'Алина', 'Егор']
friends_count = 0
def print_friends_count(friends_count):
if friends_count == 1:
print('У тебя 1 друг')
elif 2 <= friends_count <= 4:
print('У тебя ' + str(friends_count) + ' друга')
elif friends_count >= 5:
print('У тебя ' + str(friends_count) + ' друзей')
def process_query():
# перенесите в функцию process_query() вот этот код:
print("Привет, я Анфиса!")
count = len(FRIENDS)
print_friends_count(count)
НаШкодил решение:
FRIENDS = ['Серёга', 'Соня', 'Дима', 'Алина', 'Егор']
count = len(FRIENDS)
def process_query(query):
print('Привет, я Анфиса!')
if query == 'Сколько у меня друзей?':
def print_friends_count(count):
if count == 1:
print('У тебя',count,'друг')
elif 2 <= count <= 4:
print('У тебя',count,'друга')
elif count >= 5:
print('У тебя',count,'друзей')
print_friends_count(count)
else:
print('<неизвестный запрос>')
process_query('Сколько у меня друзей?')
process_query('Как меня зовут?')
Результат удовлетворяет вопросам задания:
Привет, я Анфиса!
У тебя 5 друзей
Привет, я Анфиса!
<неизвестный запрос>
Тем не менее бот не принимает ответ, пишет "Функция print_friends_count() не существует. Не удаляйте её."
Не могу понять в чем причина :(
И еще вопрос:
Функция print_friends_count(count) запускается на выполнение командой print_friends_count(count). Если можно, объясните, пожалуйста, почему вызов функции process_query(query) неприемлем в этой программе. Если вызывать ее после оператора ELSE, командой process_query(query), то происходит цикличный вывод на экран, в зависимости от места вызова функции (отступы +/- 4 пробела на следующей строчке после ELSE):
Привет, я Анфиса!
У тебя 5 друзей
Привет, я Анфиса!
У тебя 5 друзей
...
либо
Привет, я Анфиса!
У тебя 5 друзей
Привет, я Анфиса!
неизвестный запрос
Привет, я Анфиса!
неизвестный запрос
...