это код анфисы который вы последовательно писали на протяжении нескольких тем

bliki svet svechenie 156738 1280x720 Игры для детей

# Строки и форматирование

# Вывод на экран

Вы уже умеете выводить на экран текст, складывая строки. А вот как напечатать без этого? Нужно в скобках функции print() перечислить через запятую аргументы, которые она печатает:

Запятая между аргументами по умолчанию заменяется на пробел.

Это значит, что в сообщения можно не добавлять пробелы, когда составляете сложную фразу. Достаточно разделить аргументы функции print() запятой. И, что приятно, количество этих аргументов не ограничено:

# Упражнения

# Метод split()

Разбить фразу на слова, и вообще разделить строку по определённому символу можно методом split() (англ. «разделить»). В результате получится список строк. Метод split() принимает аргумент, указывающий, какой разделитель использовать.

Тогда появятся лишние точки на концах слов. Их удобнее всего убирать методом strip() — он убирает указанные символы в начале и в конце.

# Упражнения

Код вывода результатов на экран уже написан в основном теле программы.

# Форматирование строк

До сих пор для вывода текста на экран вам приходилось собирать его из нескольких частей. Но есть и другой способ. Для сборки текста из разных элементов удобны f-строки (от англ. formatted string, «форматированные строки»). Эти f-строки включают имена переменных внутри фигурных скобок. Значения переменных подставляются в строку автоматически. В коде f-строки выглядят как обычные, только начинаются с символа f перед кавычками:

Преобразование типов из числа в строку f-строки проделывают автоматически:

# Упражнения

# Подробнее о форматировании

В f-строки можно подставлять не только переменные, но и результаты вычислений. Например, арифметические операции:

И обращение к элементам списка:

А также к элементам словаря по ключу:

Второй намного понятнее, хотя строк стало в четыре раза больше. Не так ли? Лучше придерживаться общего правила: f-строки используются только для форматирования вывода, а вычислять все выражения надо вне их. И вообще, не стоит экономить на количестве строчек кода, принося в жертву его читаемость.

# Упражнения

‘Вы прослушали N песен, общей продолжительностью M минут и S секунд.’

# Запросы к друзьям

В предыдущей теме «Словари и множества» вы добавили в код персонального ассистента Виты данные о том, где живут ваши друзья. И она уже умеет отвечать на следующие запросы:

Сейчас вам предстоит расширить возможности Виты. Научить её отвечать на вопросы про отдельных друзей. Начнём с самого простого вопроса «ты где?» — внутри Виты уже хранятся данные о местоположении. Если, например, Коля и Соня находятся в списке друзей, то запросы о них будет выглядеть следующим образом:

Чтобы различать вопросы про отдельных друзей от общих вопросов к Вите, будем начинать общие вопросы с прямого обращения, вот так:

Тогда различать просто. Если вопрос начинается с имени «Вита», то это общий вопрос. А если с другого имени, то это вопрос про конкретного друга. Полагаем, правда, что у нас нет друзей по имени Вита. 😃

# Упражнения

А. Отредактируйте список запросов queries. Все запросы должны начинаться с обращения Вита:

В. Добавьте в список queries новые запросы вида:

Источник

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

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

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

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

Простой 1 комментарий

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(‘Кто все мои друзья?’))

Источник

Яндекс.Практикум. Функции. Где ошибка?

Народ! Хелп! Нифига смысла не пойму!

1. На основе заготовленного кода напишите функцию print_friends_count() для вывода количества друзей. Аргументом сделайте friends_count. Вызовите эту функцию не менее трёх раз с разными аргументами. Значениями friends_count могут быть любые натуральные числа.

2. Напишите цикл для запусков print_friends_count() c аргументами от 1 до 10.

Вот тут я не пойму, что имеется ввиду.

С этим кодом вылезает ошибка:
«Проверьте, работает ли функция print_friends_count() в соответствии с условием.»

Помогите разобраться пожалуйста. Что не так?

Простой 1 комментарий

d6867aeab8e7497b9718aa8550f750f0

А, все! дошло! Спасибо!

у меня так получилось

5e9346fb500e9665160017

У меня так получилось:

Правда не понятно, если вызвать не функцию print_friends_count, а как print(print_friends_count), то выдается строка вроде:

None
У тебя 1 друг
None
У тебя 2 друга
None
У тебя 3 друга
None
.

А что значит «None» в этом случае непонятно как то.

for friends_count in range(1, 11):
def print_friends_count(friends_count): # объявите функцию здесь
if friends_count == 1:
print(‘У тебя 1 друг’)
elif 2 = 5:
print(‘У тебя ‘ + str(friends_count) + ‘ друзей’)

print_friends_count(friends_count) #Учись, щегол

Не понятно зачем каждый раз в цикле определять функцию. Думаю, в самой задаче ошибка. Имелось в виду что-то такое:

def print_friends_count(friends_count):
if friends_count == 1:
return(‘У тебя 1 друг’)
elif 2 = 5:
return(‘У тебя ‘ + str(friends_count) + ‘ друзей’)
for i in range(1, 11):
print(print_friends_count(i))

Источник

Урок 5. Разбиение на функции. Задание 3 Яндекс Практикума.

Задание: Добавьте в функцию process_query() обработку ещё одного запроса ‘Кто все мои друзья?’. В ответ нужно выводить на экран Твои друзья: <список_друзей>, где <список_друзей>— строка, состоящая из списка друзей, разделённых запятой и пробелом.
Добавьте вызов process_query(‘Кто все мои друзья?’) в тело основной программы.

Что не так в коде? Помогите, пожалуйста, исправить ошибку.

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

def process_query(query):
print(«Привет, я Анфиса!»)

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

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

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

Traceback (most recent call last):
File «main.py», line 9

elif query == ‘Кто все мои друзья?’:

IndentationError: unexpected indent

Поддержка объяснила так:

Вы записали функцию print_friends_count​ в теле функции 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(), то вывод получился бы странный:

Источник

Поделиться с друзьями
admin
Сказочный портал
Adblock
detector