bananagurlz - 1 year ago 65

Python Question

I am trying to create a python function that makes the output a periodic function. But, I do not know how to code a variable, say X, to work as the output. I know to use Sympy for something with an output of x**2, but for some reason I cannot use the variable the same way. When I try to use sympy to get some output function that would be, for a random example, cos(4x), the error explanation I get from python is "'Symbol' object has no attribute 'cos'". How can I write a function that could give me the output cos(4x) in python where the output is cos(4x) the function, not cos(4x) evaluated at some predetermined x)?

Recommended for you: Get network issues from **WhatsUp Gold**. **Not end users.**

Answer Source

functions are objects. You can define a function inside a function and then return that newly defined function. These are referred to as closures

```
import sympy
def expansion(coef1, coef2):
def exp(x):
return sympy.cos(coef1*x) + sympy.cos(coef2*x)
return exp
c1 = 1
c2 = 2
my_exp = expansion(c1, c2)
x = sympy.symbols("x")
print(my_exp(x))
```

prints:

```
cos(x) + cos(2*x)
```

Recommended from our users: **Dynamic Network Monitoring from WhatsUp Gold from IPSwitch**. ** Free Download**