Arithmetic operators: exponentiation
a ** (double asterisk) sign is an exponentiation (power) operator. Its left argument is the base, its right, the exponent.
Classical mathematics prefers notation with superscripts, just like this: 2^3. Pure text editors don't accept that, so Python uses ** instead, e.g. 2**3
Take a look at our examples in the editor window.
print(2 ** 3)
print(2 ** 3.)
print(2. ** 3)
print(2. ** 3.)
Note: we've surrounded the double asterisks with spaces in our examples. It's not compulsory, but it improves the readability of the code.
The examples show a very important feature of virtually all Python Numerical Operators.
Run the code and look carefully at the results it products. Can you see any regularity here?
Remember: It's possible to formulate the following rules based on this result:
This is an important distinction to remember.
Arithmetic operators: multiplication
An * (asterisk) sign is a multiplication operator.
Run the code below and check if our integer vs. float rule is still working.
print(2*3)
print(2*3.)
print(2.*3)
print(2.*3.)
It is.
Arithmetic operators: division
a / (slash) sign is a divisional operator.
The value in front of the slash is a dividend, the value behind the slash, a divisor.
Run the code below and analyze the results.
print(6 / 3)
print(6 / 3.)
print(6. / 3)
print(6. / 3.)
You should see there is an exception to the rule.
The result produced by the division operator is always a float, regardless of whether or not the result seems to be a float at first glance: 1 / 2, or if it looks like a pure integer: 2/1
It this a problem? Yes, ti is. It happens sometimes that you really need a division that provides an integer value not a float.
Fortunately , PYthon can help you with that.