0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 18
Записей в блоге: 1

Функциональное программирование

29.09.2019, 18:23. Показов 9258. Ответов 28

Студворк — интернет-сервис помощи студентам
Задание со вложенными функциями, функциями с параметрами и без. В условии задания написано, что нужно создать функцию с 3-мя параметрами(x,y и название функции, которую нужно выполнить). Передать название вложенной функции явным образом (например(x,y,name='perim')).
Никак не могу разобраться как записать все это корректно и при этом чтобы вывод был, например, '12 14'.

Python
1
2
3
4
5
6
7
8
9
x=(input())
y=(input())
def func(x,y,name='pl'):
    def pl(x,y):
        return x*y
    def per(x,y):
        return (x+y)*2
print(func(x,y,'pl'),func(x,y,'per'))
func(x,y)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.09.2019, 18:23
Ответы с готовыми решениями:

Функциональное программирование
Суть моего задания: найти локальный максимум в вручную заданном массиве. Я написал код в императивном виде, а нужно чтобы он был в...

Функциональное программирование
Вот задание Выделить из заданного перечня чисел последовательность длинной наибольшей длины, состоящий из элементов,...

Функциональное программирование
Изучаю функции на python, необходима ваша помощь. Что не так в коде? Где? Почему? Зачем? Прошу не применять ООП и классы, хочу...

28
02.10.2019, 19:16
Студворк — интернет-сервис помощи студентам

Не по теме:

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

0
2 / 1 / 1
Регистрация: 03.09.2019
Сообщений: 42
03.10.2019, 14:53
я уже голову сломал...
Что не так делаю?
та же задача, но через вложенные в def две lambda функции
Python
1
2
3
4
5
6
7
x=int(input())
y=int(input())
def f(x,y):
    s, p= lambda x,y:x*y, lambda x,y: 2*(x+y) #объявляю переменные и присваиваю им результат выполнения функций
    return s,p # возвращаю их в f
    #print (lambda x,y:x*y (x,y)), lambda x,y: 2*(x+y))# это второй вариант без переменных
print(f(x,y)) #вызываю f
ответ <function <lambda> at 0x028366A8> <function <lambda> at 0x0047D780>
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
03.10.2019, 15:09
ГригорийКрыл,
А что вы ожидаете увидеть? Вы возвращаете кортеж из двух объектов (функций). Все верно. Если вам нужны значения этих функций, то вызывайте их.

Python
1
return s(x,y), p(x,y)
1
2 / 1 / 1
Регистрация: 03.09.2019
Сообщений: 42
03.10.2019, 20:18
Спасибо. Ни в одном видеоуроке это сказано.
Там все просто
p= lambda x,y:x*y
p(5,5)
25
и всё. А как организовать ввод данных и их вывод - ни слова.
в книгах то же.
Но при выводе получается тоже кортеж (... , ...)
А надо, чтобы результат выводился строкой
Я сделал такой вариант
Python
1
2
3
4
5
6
x=int(input())
y=int(input())
def f(x,y):
    s, p= lambda x,y:x*y, lambda x,y: 2*(x+y)
    print(s(x,y),p(x,y))
print(f(x,y))
Но при выводе, помимо результата появляется еще одна строка None.

такой вариант работает, но преобразование в строку происходит вне функции , а хотелось бы чтобы результат бьл сразу при вызове f(x,y)
Python
1
2
3
4
5
6
7
x=int(input())
y=int(input())
def f(x,y):
    s, p= lambda x,y:x*y, lambda x,y: 2*(x+y)
    return s(x,y),p(x,y)
a=list(f(x,y))
print (str(a[0]),str(a[1]))
как это сделать, не понимаю пока...
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
пробовал и так
return list(s(x,y)),list(p(x,y))
и так
return str(s(x,y)),str(p(x,y))
и так
x=int(input())
y=int(input())
def f(x,y):
    s, p= lambda x,y:x*y, lambda x,y: 2*(x+y)
    a= str(s(x,y))
    b=str(p(x,y))
    return(a,b)
print (f(x,y))
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
03.10.2019, 20:39
ГригорийКрыл, вот тут твоя однокурсница и вариант для нее

Цитата Сообщение от ГригорийКрыл Посмотреть сообщение
Ни в одном видеоуроке это сказано.
только книги! никаких видяшек или статеек в блогах, только Лутц, Бизли, Мартелли и Слаткин.

кортеж у тебя получается, потому что ты возвращаешь кортеж, а можно ведь лист возвращать. Да и чем тебя вывод не устроил, как надо то?

Цитата Сообщение от ГригорийКрыл Посмотреть сообщение
Но при выводе, помимо результата появляется еще одна строка None.
это возвращает функция принт, которую ты вызываешь в ретурн (так никто не делает)
0
2 / 1 / 1
Регистрация: 03.09.2019
Сообщений: 42
03.10.2019, 22:50
Книги читаю по мере возможности. Но четверо малолетних детей не способствуют быстрому усвоению, а программа курса идет вперед.
Нужно чтобы значения выводились в одну строку через пробел без скобок и кавычек
я пробовал
Python
1
2
3
4
5
return list(s(x,y)),list(p(x,y))
 
и так
 
return str(s(x,y)),str(p(x,y))
но ошибка...
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
04.10.2019, 06:09
Цитата Сообщение от ГригорийКрыл Посмотреть сообщение
Нужно чтобы значения выводились в одну строку через пробел без скобок и кавычек
так?
Python
1
2
3
4
5
>>> k=(1,2)
>>> print(k)
(1, 2)
>>> print(*k)
1 2
0
2 / 1 / 1
Регистрация: 03.09.2019
Сообщений: 42
04.10.2019, 07:53
вот так
Python
1
2
>>> print(*k)
1 2
0
0 / 0 / 0
Регистрация: 18.10.2020
Сообщений: 5
18.10.2020, 13:23
Всем привет. Я не стал создавать ещё одну тему и разводить флуд. Решил написать в этой.
задача таже что и в начале темы:
Считать отдельными операторами целочисленные ширину и высоту прямоугольника. Создать функцию (def), принимающую в качестве параметров ширину и высоту фигуры и название функции, которую необходимо выполнить. Имя вложенной функции передавать явным образом (например: (a,b,name='perim')).
Внутри функции создать две вложенные функции (def) по подсчету площади и периметра фигуры. Вывести одной строкой через пробел площадь и периметр, разделенные пробелом (например, '20 18').
Пример входных данных:
4
5
Пример входных данных:
20 18
Написал такой код.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
a = int(input()) #целочисленный оператор.
b = int(input()) #целочисленный оператор.
def abperim(a, b, name): #функция с тремя параметрами.
    def perim(): # 1 вложенная функция.
        print((a + b) * 2, end = " ")
    def place(): # 2 вложенная функция.
        print(a * b)
    if name == "perim":
        perim()
    elif name == "place":
        place()
abperim(a, b, name = "perim") # Имя вложенной функции передаю явным образом.
abperim(a, b, name = "place")
Результат выполнения кода: 20 18.
Вопрос: В чём ошибка?(решение мне не засчитывают).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2020, 13:23
Помогаю со студенческими работами здесь

Функциональное программирование. Список из функций
Подскажите пожалуйста, как здесь быть. Нужно вывести список полученных значений (). А выводит только .Как можно вывести значение функции?...

Как переписать под функциональное программирование
Вот само задание: Толковый словарь определяет для каждого слова его толкование. Вывести на экран списки, первый из которых состоит из...

Как записать задачу, используя функциональное программирование?
Добрый день, Есть задача Во входном файле записан текст. Словом считается последовательность непробельных символов идущих...

Функциональное программирование
Написать функцию для нахождения коэффициентов многочлена являющегося производной заданного многочлена (коэффициеты всех многочленов...

Функциональное программирование
Читал или слышал, что те, кто выучил ООП, потом не могут изучить функциональное программирование. Достаточно ли будет изучить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

Новые блоги и статьи
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru