
Python Programming/Operators
Contents |
[edit] Basics
Python math works like you would expect.
>>> x = 2 >>> y = 3 >>> z = 5 >>> x * y 6 >>> x + y 5 >>> x * y + z 11 >>> (x + y) * z 25
Note that Python adheres to the PEMDAS order of operations.
[edit] Powers
There is a built in exponentiation operator **, which can take either integers, floating point or complex numbers. This occupies its proper place in the order of operations.
>>> 2**8 256
[edit] Division and Type Conversion
For Python 2.x, dividing two integers or longs uses integer division, also known as "floor division" (applying the floor function after division. So, for example, 5 / 2 is 2. Using "/" to do division this way is deprecated; if you want floor division, use "//" (available in Python 2.2 and later).
"/" does "true division" for floats and complex numbers; for example, 5.0/2.0 is 2.5.
For Python 3.x, "/" does "true division" for all types.[1][2]
Dividing by or into a floating point number (there are no fractional types in Python) will cause Python to use true division. To coerce an integer to become a float, 'float()' with the integer as a parameter
>>> x = 5 >>> float(x) 5.0
This can be generalized for other numeric types: int(), complex(), long().
Beware that due to the limitations of floating point arithmetic, rounding errors can cause unexpected results. For example:
>>> print 0.6/0.2 3.0 >>> print 0.6//0.2 2.0
[edit] Modulo
The modulus (remainder of the division of the two operands, rather than the quotient) can be found using the % operator, or by the divmod builtin function. The divmod function returns a tuple containing the quotient and remainder.
>>> 10%7 3
[edit] Negation
Unlike some other languages, variables can be negated directly:
>>> x = 5 >>> -x -5
[edit] Augmented Assignment
There is shorthand for assigning the output of an operation to one of the inputs:
>>> x = 2 >>> x # 2 2 >>> x *= 3 >>> x # 2 * 3 6 >>> x += 4 >>> x # 2 * 3 + 4 10 >>> x /= 5 >>> x # (2 * 3 + 4) / 5 2 >>> x **= 2 >>> x # ((2 * 3 + 4) / 5) ** 2 4 >>> x %= 3 >>> x # ((2 * 3 + 4) / 5) ** 2 % 3 1 >>> x = 'repeat this ' >>> x # repeat this repeat this >>> x *= 3 # fill with x repeated three times >>> x repeat this repeat this repeat this
[edit] Boolean
or:
if a or b: do_this else: do_this
and:
if a and b: do_this else: do_this
not:
if not a: do_this else: do_this
[edit] References
- ↑ [http://www.python.org/doc/2.2.3/whatsnew/node7.html What's New in Python 2.2
- ↑ PEP 238 -- Changing the Division Operator