# How can I use "e" (Euler's number) and power operation?

## Question:

How can I write `1-e^(-value1^2/2*value2^2)` in Python?

I don’t know how to use power operator and `e`.

Power is `**` and `e^` is `math.exp`:

``````x.append(1 - math.exp(-0.5 * (value1*value2)**2))
``````

Python’s power operator is `**` and Euler’s number is `math.e`, so:

`````` from math import e
x.append(1-e**(-value1**2/2*value2**2))
``````

You can use `exp(x)` function of math library, which is same as `e^x`. Hence you may write your code as:

``````import math
x.append(1 - math.exp( -0.5 * (value1*value2)**2))
``````

I have modified the equation by replacing `1/2` as `0.5`. Else for Python <2.7, we’ll have to explicitly type cast the division value to `float` because Python round of the result of division of two `int` as integer. For example: `1/2` gives `0` in python 2.7 and below.

`math.e` or `from math import e` (= 2.718281…)

The two expressions `math.exp(x)` and `e**x` are equivalent
however:
Return e raised to the power x, where e = 2.718281… is the base of natural logarithms. This is usually more accurate than `math.e ** x` or `pow(math.e, x)`. docs.python

for power use `**` (`3**2` = 9), not " ^ "
" ^ " is a bitwise XOR operator (& and, | or), it works logicaly with bits.
So for example `10^4`=14 (maybe unexpectedly) → consider the bitwise depiction:

(0000 1010 ^ 0000 0100 = 0000 1110) programiz

Just saying: `numpy` has this too. So no need to import `math` if you already did `import numpy as np`:

``````>>> np.exp(1)
2.718281828459045
``````

Just to add, `numpy` also has `np.e`

In my case, the exponent happens to be complex number with angle expressed in radians. So my approach was:

``````import cmath
theta = cmath.pi/4
output = cmath.exp(theta*1j)   # LaTeX: \$e^{itheta}\$
print(output)                  # (0.7071067811865476+0.7071067811865476j)
``````

Note: Use `1j` instead of `j` since python throws `NameError` for `j`. And used `cmath` instead of `math`.