Составить программу вычисления значения функции для любого x по желанию пользователя python

Задача.
Написать программу построения графика функции по формуле, которую введет пользователь. На ввод — математическая формула функции, x0, x1 (интервал построения), количество шагов.
Размышления.
Пожалуй, единственная сложность этой программы для человека знакомого с питоном, — перевод введенного пользователем математического выражения в исполняемый код. После непродолжительного гугления обнаружился интересный модуль, решающий подобную подзадачу. Называется он sympy.utilities.lambdify.
Из названия понятно, что он превращает введенную математику (или код) в лямбда-функцию (см https://ru.wikipedia.org/wiki/Лямбда-функция). Лямбдафицирует, если позволите, строку. Да, в решении приходится использовать eval, возможно, это небезопасно, однако обеспечение безопасности решения выходит за рамки этой задачи, и над этим вопросом вполне можно поразмышлять на досуге 🙂
Модули.
Для математики нам понадобится модуль math, для упрощенного создания массивов numpy, для рисования графиков неплохо подойдёт matplotlib.pyplot. А вот для перевода функции из полученной от пользователя строки используем sympy, sympy.abc и функцию lambdastr из модуля sympy.utilities.lambdify.

39 Задача: Вычислить факториал при помощи Python


Решение.
Приведу полностью исходник с комментариями. (Исходник также доступен на гитхабе: https://github.com/svetimir/flxd_graphs)

Источник: flaurion.livejournal.com

Составить программу вычисления значения функции для любого x по желанию пользователя python

Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Регистрация: 12.09.2018
Сообщений: 7
Изображения

Безымянный.png (17.3 Кб, 113 просмотров)

Регистрация: 09.01.2008
Сообщений: 26,238

не знаю Python,
но я бы вставил дополнительные скобки, чтобы правильно расставить приоритет выполнения операций:

Читайте также:
Как почистить ноутбук асус от ненужных программ

if((u>0) and (t>0)):return u*u + t*t if((u<=0) and (t<=0):return u+t*t и т.д.
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772

dianaaa1998, там, где задаются числа, зачем Вы написали запятые?
Даже в условии стоят точки, а Вы зачем-то исправили их на запятые.

PS. Неужели нельзя выложить код НЕ картинкой — невозможно же скопировать нужное место..

не знаю Python, но..
Регистрация: 15.02.2010
Сообщений: 15,415
Как зачем? Чтобы вместо чисел получить tuple,а потом бегать картинки на форумы постить.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу для вычисления значения исходных данных функции и вывести исходные данные и результат Fiesta12 Помощь студентам 2 16.10.2016 11:27
Написать программу вычисления значения функции Rita48 Паскаль, Turbo Pascal, PascalABC.NET 1 29.10.2014 07:28
Помогите пожалуйста написать программу для вычисления значения функции! (С#) Аукгь1991 Помощь студентам 13 03.02.2014 17:14
написать программу вычисления значения функции, заданной условиями Liubov Паскаль, Turbo Pascal, PascalABC.NET 3 17.04.2013 13:25
Написать программу на языке программирования Delphi для вычисления значения функции Chemist_8 Помощь студентам 3 12.12.2012 17:24

#39. Функции с произвольным числом параметров *args и **kwargs | Python для начинающих

Источник: www.programmersforum.ru

7 примеров функций Python с параметрами, возвратом и типом данных

7 примеров функций Python с параметрами, возвратом и типом данных

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

Функции улучшают возможность повторного использования кода.

В этой статье мы обсудим следующие примеры:

  1. Пример базовой функции Python
  2. Встроенные функции Python
  3. Пользовательские функции Python
  4. Параметры функции Python
  5. Функция Python. Неизвестное количество параметров
  6. Возвращаемое значение функции Python
  7. Тип данных для параметра s и возвращаемого значения

1. Пример базовой функции Python

Ниже приведен пример функции Python, которая принимает два параметра, вычисляет сумму и возвращает вычисленное значение.

Читайте также:
Какой программой открыть explorer

# определение и объявление функции def calculate_sum(a,b): sum = a+b return sum # Приведенная ниже инструкция называется вызовом функции print(calculate_sum(2,3)) # 5

В Python есть две широкие категории функций: встроенные функции и пользовательские функции.

2. Встроенные функции Python

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

print(«Привет мир») print(len(«Меня зовут AndreyEx»))

Еще несколько примеров таких функций: len(), str(), int(), abs(), sum() и т. д.

3. Пользовательские функции Python

Пользовательские функции объявляются с использованием ключевого слова def. Ключевое слово должно сопровождаться именем функции.

def calculate_si_amount(principal, rate, time): interest = (principal*rate*time)/100 return principal+interest

В этой функции окончательная сумма рассчитывается путем применения простого процента к основной сумме. Calculate_si_amount является именем функции. principal, rate и time являются параметрами, и функция возвращает рассчитанные данные.

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

from random import seed, random from random import random def generate_random_number(): seed(10) return random()

4. Параметры функции Python

Функция может иметь параметры по умолчанию.

def multiply(a, b=10): return a*b multiply(12) # 120 multiply(2, 3) # 6 multiply(b=9) # Ошибка: None*9 недопустимо

В этой функции, если пользователь не задает второй параметр b, он предполагает, что он равен 10, но необходимо предоставить первый параметр.

5. Функция Python. Неизвестное количество параметров

Примечание

Если в функции, скажем, 4 параметра и для 2-го параметра определено значение по умолчанию, то 3-му и 4-му параметрам также следует присвоить значение по умолчанию.

Читайте также:
Как пользоваться программой flash memory toolkit

Если число параметров, которые должна ожидать функция, неизвестно, тогда * args добавляется в определение функции в качестве одного из параметров. Этот параметр ожидает кортеж. Звездочка (*) здесь важна. Название args — это просто соглашение. Ему можно дать любое другое имя.

def calculate_sum(a, *args): sum = a for i in args: sum += i return sum calculate_sum(10) # 10 calculate_sum(10, 11, 12) # 33 calculate_sum(1, 2, 94, 6, 2, 8, 9, 20, 43, 2) # 187

Точно так же ** kwargs ожидает словарь в качестве параметра.

def print_names(f1, l1, **kwargs): print(f1, l1, end=’ ‘) for key in kwargs: print(key, kwargs[key], end=’ ‘) print_names(«andreyex», «master») print_names(«andreyex», «master», alex=»john», leon=»milene») # andreyex master andreyex master alex john leon milene

6. Возвращаемое значение функции Python

Python позволяет функции возвращать несколько значений.

def prime_numbers(x): l=[] for i in range(x+1): if checkPrime(i): l.append(i) return len(l), l no_of_primes, primes_list = prime_numbers(100)

Здесь возвращаются два значения. Когда эта функция вызывается, возвращаемые значения сохраняются в двух переменных одновременно.

Примечание
Если функция ничего не возвращает, она неявно возвращает None.

7. Тип данных для параметров и возвращаемого значения

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

def prime_numbers(x:int) -> (int, list): l=[] for i in range(x+1): if checkPrime(i): l.append(i) return len(l), l

Определение функции указывает, что ей нужен один параметр типа int и вернет два значения типа int и list соответственно.

На этом все. Удачи в программировании.

Если у вас есть какие-либо вопросы или предложения, дайте мне знать в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник: andreyex.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru