Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.70/47: Рейтинг темы: голосов - 47, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 18
Записей в блоге: 1

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

29.09.2019, 18:23. Показов 9174. Ответов 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru