подготовьте код анфисы к использованию на сервере

Яндекс.Практикум, где ошибка?

Напишите функцию process_query() (англ. process query, «обработать запрос»). Перенесите в неё весь код из тела основной программы. Эта функция будет принимать на вход запросы пользователя и выдавать ответ на них. Пока она может обработать всего один запрос — сообщить количество друзей.
Добавьте вызов функции process_query() в тело основной программы.
В чем ошибка?

5f4df4422ace2803832545

8b667e35da254682a515d4d2e10a9041

5f4df4422ace2803832545

dd9dc9364c1c4822b67068a021147568

Теперь покажите, что вы не проите нас решить за вас задачу

# перенесите в функцию process_query() вот этот код:
def process_query():
—-print(«Привет, я Анфиса!»)
—-count = len(FRIENDS)
—-print_friends_count(count)

Замените тире на пробелы или на tab

5f4df4422ace2803832545

5f4df4422ace2803832545

Напишите функцию process_query() (англ. process query, «обработать запрос»). Перенесите в неё весь код из тела основной программы. Эта функция будет принимать на вход запросы пользователя и выдавать ответ на них. Пока она может обработать всего один запрос — сообщить количество друзей.
Добавьте вызов функции process_query() в тело основной программы.

Источник

Яндекс.Практикум, где ошибка?

Напишите функцию process_query() (англ. process query, «обработать запрос»). Перенесите в неё весь код из тела основной программы. Эта функция будет принимать на вход запросы пользователя и выдавать ответ на них. Пока она может обработать всего один запрос — сообщить количество друзей.
Добавьте вызов функции process_query() в тело основной программы.
В чем ошибка?

5f4df4422ace2803832545

8b667e35da254682a515d4d2e10a9041

5f4df4422ace2803832545

dd9dc9364c1c4822b67068a021147568

Теперь покажите, что вы не проите нас решить за вас задачу

# перенесите в функцию process_query() вот этот код:
def process_query():
—-print(«Привет, я Анфиса!»)
—-count = len(FRIENDS)
—-print_friends_count(count)

Замените тире на пробелы или на tab

5f4df4422ace2803832545

5f4df4422ace2803832545

Напишите функцию process_query() (англ. process query, «обработать запрос»). Перенесите в неё весь код из тела основной программы. Эта функция будет принимать на вход запросы пользователя и выдавать ответ на них. Пока она может обработать всего один запрос — сообщить количество друзей.
Добавьте вызов функции process_query() в тело основной программы.

Источник

Что я сделал не так?

Измените код Анфисы. Оставьте вывод на экран, т.е. вызовы функции print(), только в одном месте — в основном теле программы. Эти вызовы уже написаны в предварительном коде задания.
Все прошлые выводы на экран — в функциях show_count_friends() и process_query() — замените на возвращения результатов из функции оператором return.
Подсказка

Не забудьте вернуть результат выполнения функции show_count_friends() из process_query(), чтобы первому вызову print() было что печатать.

не могу понять, куда вставлять «return»

d6867aeab8e7497b9718aa8550f750f0

> Что я сделал не так?

Как минимум, не использовал теги для форматирования кода

пропущен count в функции

FRIENDS = [‘Серёга’, ‘Соня’, ‘Дима’, ‘Алина’, ‘Егор’]

def show_count_friends(count_friends):
if count_friends == 1:
return (‘У тебя 1 друг’)
elif 2 = 5:
return (‘У тебя ‘ + str(count_friends) + ‘ друзей’)

def process_query(query):
if query == ‘Сколько у меня друзей?’:
count = len(FRIENDS)
return show_count_friends(count)
elif query == ‘Кто все мои друзья?’:
friends_string = ‘, ‘.join(FRIENDS)
return friends_string
else:
return ‘ ‘

# Внимание! Это те самые вызовы, которые не надо трогать
show_count_friends(5)

print(process_query(‘Сколько у меня друзей?’))
print(process_query(‘Кто все мои друзья?’))
print(process_query(‘Как меня зовут?’))

Eщё надо дописать return query

FRIENDS = [‘Серёга’, ‘Соня’, ‘Дима’, ‘Алина’, ‘Егор’]

def show_count_friends(count_friends):
if count_friends == 1:
return(‘У тебя 1 друг’)
elif 2 = 5:
return(‘У тебя ‘ + str(count_friends) + ‘ друзей’)

def process_query(query):
if query == ‘Сколько у меня друзей?’:
count = len(FRIENDS)
return show_count_friends(count)
elif query == ‘Кто все мои друзья?’:
friends_string = ‘, ‘.join(FRIENDS)
return(‘Твои друзья: ‘ + friends_string)
else:
return(‘ ‘)
return query

# Внимание! Это те самые вызовы, которые не надо трогать
print(process_query(‘Сколько у меня друзей?’))
print(process_query(‘Кто все мои друзья?’))

Источник

# Функции

Создание функции называется определение. Оно начинается с ключевого слова def (от англ. definition, «определение»), затем идут имя функции, её аргументы, или параметры в круглых скобках и двоеточие. Начиная со следующей строки, с отступом в 4 пробела от начала, записывают тело функции — код, который она выполняет. Обращение к функции называется вызов функции. Функция вызывается по имени, при вызове ей передают аргументы, с которыми она должна что-то сделать.

Напишем приветствие как функцию:

# Упражнения

# Упражнения tkinter

Напишите оконное приложение выводящее список количества друзей.

Напишите оконное приложение с полем ввода количества друзей. Кнопкой при нажатии на которую выводится сообщение о количестве друзей.

# Аргументы функции

В Python аргументам функций может быть присвоено значение по умолчанию. Оно подставляется, когда при вызове функции вы не оставляете насчёт аргументов никаких инструкций.

Функция say_hello() принимает два аргумента — current_hour и name (англ. name, «имя»), которому задано значение по умолчанию. При вызове только с одним аргументом current_hour значением второго аргумента name станет пустая строка.

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

# Упражнения

Анфиса может анализировать списки. Например, подсчитывать дни, когда в вашем городе или в городах ваших друзей стояла хорошая погода.

Есть списки средних дневных температур в Москве за май 2017 и 2018 годов. Создайте функцию comfort_count(temperatures) для подсчёта в переданном списке комфортных дней — дней с температурой воздуха от 22 до 26 градусов включительно.

# Разбиение на функции

В больших проектах, написанных на Python, принято выносить весь повторяющийся код в отдельные функции перед телом основной программы. Посмотрим на пример:

Функция say_hello() содержит основную логику, а runner() (от англ. run, «запускать») выполняет роль управляющего механизма. Такое разделение придаёт коду программы аккуратный внешний вид, делает его более выразительным, упрощает чтение.

# Упражнения

# Возврат значений из функции

Пока что все наши функции печатали результаты своей работы на экран. Но обычно задача функции не сводится к выступлениям в печати. Как правило, это код, производящий специальные вычисления. Он не выводит результаты на экран, а возвращает их как значения. Значение вернётся в вызывающий код, и там будет использовано. Например, сохранено в переменной. Если программе нужно, к примеру, несколько раз посчитать одно и то же, эти вычисления поручают особым функциям:

Ключевое слово return (англ. «возвращать») указывает, какое значение функция вернёт основному коду.

# Упражнения

# Вызов функции из функции

Функцию можно вызвать не только из основного кода, но и из другой функции.

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

Если бы мы ошиблись и забыли вернуть строку text из функции show_info(), то вывод получился бы странный:

Источник

ЯндексПрактикум, почему бот не видит вложенную функцию?

На серверы приходит множество запросов — от разных пользователей или от других серверов. Измените функцию process_query() (обработчик запроса), чтобы она поддерживала несколько разных запросов, а не только один.
Добавьте аргумент query в функцию process_query(). Этот аргумент будет сообщать, какой именно запрос необходимо обработать.
В начало функции process_query() добавьте проверку значения переменной query:
если значение равно ‘Сколько у меня друзей?’ — выведите ответ на этот вопрос, как в предыдущем задании;
в противном случае — выведите ‘ ‘;
Анфиса должна здороваться при любом запросе.
Добавьте вызов process_query(‘Сколько у меня друзей?’) в основное тело программы.
Добавьте ещё один вызов process_query(‘Как меня зовут?’) в основное тело программы.
Подсказка

Результат удовлетворяет вопросам задания:

Тем не менее бот не принимает ответ, пишет «Функция print_friends_count() не существует. Не удаляйте её.»
Не могу понять в чем причина 🙁

И еще вопрос:
Функция print_friends_count(count) запускается на выполнение командой print_friends_count(count). Если можно, объясните, пожалуйста, почему вызов функции process_query(query) неприемлем в этой программе. Если вызывать ее после оператора ELSE, командой process_query(query), то происходит цикличный вывод на экран, в зависимости от места вызова функции (отступы +/- 4 пробела на следующей строчке после ELSE):

Привет, я Анфиса!
У тебя 5 друзей
Привет, я Анфиса!
У тебя 5 друзей
.

Привет, я Анфиса!
У тебя 5 друзей
Привет, я Анфиса!
неизвестный запрос
Привет, я Анфиса!
неизвестный запрос
.

b5fba9005c1e4deeb97683517e927d0d

5e9346fb500e9665160017

b5fba9005c1e4deeb97683517e927d0d

5e9346fb500e9665160017

b5fba9005c1e4deeb97683517e927d0d

verbalistus, не убедили) Нужно вам немного питон поучить прежде чем задачки решать. Функция ни от чего не зависит. У неё есть параметр, у как его не называй, передать значение в функцию можно любое.

5e9346fb500e9665160017

Привет, я Анфиса!
У тебя 5 друзей
Привет, я Анфиса!
неизвестный запрос

5e9346fb500e9665160017

b5fba9005c1e4deeb97683517e927d0d

5e9346fb500e9665160017

5e2eab1ca089b679015712

При запуске программы (или импорте модуля) по очереди выполняются все операторы (импорты, объявления функций/классов, присвоение имен результатам каких-то выражений. )

Мне кажется вам стоит скачать книжку Лутца про изучение питона с нуля и вдумчиво прочитать. По порядку.

Источник

Adblock
detector