Python was created by Guido van Rossum and first released in 1991
Python is an interpreted high-level programming language
Python is a multi-paradigm programming language
Python is dynamically typed – types of variables do not need to be declared
Python is strongly typed – types are not implicitly coerced
Every powerful programming language has mechanisms for combining simple ideas to form more complex ideas:
primitive expressions and statements which represent the simplest building blocks that the language provides.
means of combination, by which compound elements are built from simpler ones, and
means of abstraction, by which compound elements can be named an manipulated as units.
In programming, we deal with two kinds of elements:
data: the stuff that we want to manipulate
functions: describe rules for manipulating data
Python programs are composed of expressions, which are evaluated by the Python interpreter.
There are two main kinds of expressions:
primitive expressions, for example the number 42
compound expressions, for example 3 * 4
The most important kind of compound expression is a call expression, which applies function to some arguments.
A call expression has subexpressions:
the operator is an expression that precedes parentheses, and
a comma delimited list of operand expressions.
Example:
max(7.5, 9.5)
The operator specifies the function
When the call expression is evaluate, we say that the function max
is called with arguments 7.5 and 9.5 and returns a value of 9.5.
Functions can take an arbitrary number of arguments instead of only two
max(1, -2, 3, -4)
Function notation extends to nested expressions.
max(min(1,2), min(pow(3, 5), -4))
Function notation only requires a name instead of the various forms of mathematical notation.
The Python interpreter is the most basic way to execute Python code.
The interpreter can be started by typing python
at the command prompt.
$ python
>>>
The interpreter can be used to evaluate Python expressions.
>>> 1 + 1
2
>>> x = 5
>>> x * 3
15
Python programs (scripts) are saved in files with a .py
extension.
Example: file named test.py
with the contents
# file: test.py
print("Running test.py")
x = 5
print("Result is", 3 * x)
A python file is run with the python
filename command.
$ python test.py
Running test.py
Result is 15
The syntax of a programming language refers to structure of the language, that is, what constitutes a legal program.
The semantics of a programming language refers to the meaning of a legal program.
# set the midpoint
midpoint = 5
# make two empty lists
lower = []; upper = []
# split the numbers into lower and upper
for i in range(10):
if (i < midpoint):
lower.append(i)
else:
upper.append(i)
print("lower:", lower)
print("upper:", upper)
The next line in the script is:
midpoint = 5
This is an assignment operation which binds the name midpoint
to the value 5.
The statement is marked by the end of the line
A statement can span multiple lines by using the backslash:
x = 1 + 2 + 3 + 4 +\
5 + 6 + 7 + 8
or by placing the expression in parentheses:
x = (1 + 2 + 3 + 4 +
5 + 6 + 7 + 8)
The next part of the script is
lower = []; upper = []
The semicolon can be used to put multiple statements on the same line.
This is equivalent to
lower = []
upper = []
The use of semicolons in this fashion is generally discouraged in Python programming.
The main block of code in the program is:
for i in range(10):
if (i < midpoint):
lower.append(i)
else:
upper.append(i)
This is a compound control-flow statement.
Python blocks of code are denoted by indentation.
Python blocks of code are always preceded by a colon (:
) on the previous line.
Most style guides recommend indenting blocks by four spaces.
The following expressions are equivalent:
x=1+2
x = 1 + 2
x = 1 + 2
Most style guides recommend using a single space around binary operators and no space around unary operators.
Parentheses can be used for grouping or calling
Grouping statements or mathematical operations:
2 * (3 + 4)
Calling a function:
print('first value:", 1)
Some functions can be called with no arguments; but the parentheses are still needed.
L = [4, 3, 2, 1]
L.sort()
print(L)
The syntax of a programming language refers to structure of the language, that is, what constitutes a legal program.
The semantics of a programming language refers to the meaning of a legal program.
A Python variable binds a name to a value.
New bindings are established using the assignment statement:
# assign 4 to the variable x
x = 4
Variable naming rules:
A variable name may include only the characters a-z, A-Z, 0-9, and the underscore
A variable name must start with a letter or an underscore
Variable names are case sensitive
Every value in Python is an object
Objects have attributes (state) and methods (behavior)
Syntax for using a method:
object.method([parameters])
Example:
>>> x = 4.5
>>> x.is_integer()
False
Expression Type | Operator | Description |
---|---|---|
Addition | a + b |
Sum of a and b |
Subtraction | a - b |
Difference of a and b |
Multiplication | a * b |
Product of a and b |
Division | a / b |
Quotient of a and b |
Floor Division | a // b |
Quotient, removing fractional parts |
Modulus | a % b |
Remainder after division of a by b |
Exponentiation | a ** b |
a raised to the power of b |
Expression Type | Operator | Description |
---|---|---|
Bitwise AND | a & b |
Bits defined in both a and b |
Bitwise OR | a | b |
Bits defined in a or b |
Bitwise XOR | a ^ b |
Bits defined in a or b, not both |
Bit shift left | a << b |
Shift bits of a left by b units |
Bit shift right | a >> b |
Shift bits of a right by b units |
Bitwise NOT | ~a |
Bitwise negation of a |
Operator | Equivalent to |
---|---|
a += b |
a = a + b |
a -= b |
a = a - b |
a /= b |
a = a / b |
a //= b |
a = a // b |
a %= b |
a = a % b |
a *= b |
a = a * b |
a &= b |
a = a & b |
a |= b |
a = a | b |
a ^= b |
a = a ^ b |
a <<= b |
a = a << b |
a >>= b |
a = a >> b |
Operator | Description |
---|---|
a == b |
a equal to b |
a != b |
a not equal to b |
a < b |
a less than b |
a > b |
a greater than b |
a <= b |
a less than or equal to b |
a >= b |
a greater than or equal to b |
Operator | Description |
---|---|
a and b |
True if both a and b are true |
a or b |
True if either a or b is true |
not a |
True if a is False |
Operator | Description |
---|---|
a is b |
True if a and b are identical objects |
a is not b |
True if a and b are not identical objects |
a in b |
True if a is a member of b |
a not in b |
True if a is not a member of b |
Comments
Comments are denoted by
#
.The example program starts with the comment:
Anything after the
#
is ignored by the interpreter.Python has no syntax for multi-line comments.