# Python Course

Previous Chapter: Data Types and Variables
Next Chapter: Sequential Data Types: Lists and Strings

## Arithmetic and Comparison Operators

### Introduction

This chapter covers the various built-in operators, which Python has to offer.

### Operators

These operations (operators) can be applied to all numeric types:

Operator | Description | Example
--- | --- | ---
+, - | Addition, Subtraction | 10 -3
*, % | Multiplication, Modulo | 27 % 7 Result: 6
/ | Division This operation results in different results for Python 2.x (like floor division) and Python 3.x | Python3:
    >>> 10  / 3
    3.3333333333333335
and in Python 2.x:
    >>> 10  / 3
    3
// | Truncation Division (also known as floordivision or floor division) The result of this division is the integral part of the result, i.e. the fractional part is truncated, if there is any. It works both for integers and floating-point numbers, but there is a difference in the type of the results: If both the divident and the divisor are integers, the result will be also an integer. If either the divident or the divisor is a float, the result will be the truncated result as a float. |
    >>> 10 // 3
    3
If at least one of the operands is a float value, we get a truncated float value as the result.
    >>> 10.0 // 3
    3.0
    >>>
A note about efficiency: The results of int(10 / 3) and 10 // 3 are equal. But the "//" division is more than two times as fast! You can see this here:
    In [9]: %%timeit
    for x in range(1, 100):
        y = int(100 / x)
       ...:
    100000 loops, best of 3: 11.1 μs per loop

    In [10]: %%timeit
    for x in range(1, 100):
        y = 100 // x
       ....:
    100000 loops, best of 3: 4.48 μs per loop
+x, -x | Unary minus and Unary plus (Algebraic signs) | -3
~x | Bitwise negation | ~3 - 4 Result: -8
** | Exponentiation | 10 ** 3 Result: 1000
or, and, not | Boolean Or, Boolean And, Boolean Not | (a or b) and c
in | "Element of" | 1 in [3, 2, 1]
<, <=, >, >=, !=, == | The usual comparison operators | 2 <= 3
|, &, ^ | Bitwise Or, Bitwise And, Bitwise XOR | 6 ^ 3
<<, >> | Shift Operators | 6 << 3

Previous Chapter: Data Types and Variables
Next Chapter: Sequential Data Types: Lists and Strings