Let's go over the basic data types that you will encounter in Python.
A number may be an integer, a real number, or a complex number. The usual operations are:
- addition and subtraction,
+
and -
- multiplication and division,
*
and /
- power,
**
Here is an example:
2 ** (2 + 2) # 16
1j ** 2 # -1
1. + 3.0j
Note
The symbol for complex numbers
j
is a symbol to denote the imaginary part of a complex number.
It is a syntactic element and should not be confused with multiplication by a variable. More on complex numbers can be found in section Numeric Types of Chapter 2, Variables and Basic Types.
Strings are sequences of characters, enclosed by simple or double quotes:
'valid string'
"string with double quotes"
"you shouldn't forget comments"
'these are double quotes: ".." '
You can also use triple quotes for strings that have multiple lines:
"""This is
a long,
long string"""
A variable is a reference to an object. An object may have several references. One uses the assignment operator =
to assign a value to a variable:
x = [3, 4] # a list object is created
y = x # this object now has two labels: x and y
del x # we delete one of the labels
del y # both labels are removed: the object is deleted
The value of a variable can be displayed by the print
function:
x = [3, 4] # a list object is created
print(x)
Lists are a very useful construction and one of the basic types in Python. A Python list is an ordered list of objects enclosed by square brackets. One can access the elements of a list using zero-based indexes inside square brackets:
L1 = [5, 6]
L1[0] # 5
L1[1] # 6
L1[2] # raises IndexError
L2 = ['a', 1, [3, 4]]
L2[0] # 'a'
L2[2][0] # 3
L2[-1] # last element: [3,4]
L2[-2] # second to last: 1
Indexing of the elements starts at zero. One can put objects of any type inside a list, even other lists. Some basic list functions are as follows:
list(range(n))}
creates a list with n
elements, starting with zero:
print(list(range(5))) # returns [0, 1, 2, 3, 4]
len
gives the length of a list:
len(['a', 1, 2, 34]) # returns 4
append
is used to append an element to a list:
L = ['a', 'b', 'c']
L[-1] # 'c'
L.append('d')
L # L is now ['a', 'b', 'c', 'd']
L[-1] # 'd'
- The operator
+
concatenates two lists: L1 = [1, 2]
L2 = [3, 4]
L = L1 + L2 # [1, 2, 3, 4]
- As one might expect, multiplying a list with an integer concatenates the list with itself several times:
n*L
is equivalent to making n additions.
L = [1, 2]
3 * L # [1, 2, 1, 2, 1, 2]
A Boolean expression is an expression that may have the value True
or False
. Some common operators that yield conditional expressions are as follow:
- Equal,
==
- Not equal,
!=
- Less than, Less than or equal to,
<
, <=
- Greater than, Greater than or equal to,
>
, >=
One combines different Boolean values with or
and and
.
The keyword not
, gives the logical negation of the expression that follows. Comparisons can be chained so that, for example, x < y < z
is equivalent to x < y and y < z
. The difference is that y
is only evaluated once in the first example.
In both cases, z
is not evaluated at all when the first condition, x < y
, evaluates to False
:
2 >= 4 # False
2 < 3 < 4 # True
2 < 3 and 3 < 2 # False
2 != 3 < 4 or False # True
2 <= 2 and 2 >= 2 # True
not 2 == 3 # True
not False or True and False # True!
Note
Precedence rules
The <
, >
, <=
, >=
, !=
, and ==
operators have higher precedence than not.
The operators and
, or
have the lowest precedence. Operators with higher precedence rules are evaluated before those with lower.