Coding, maths and art

Basic syntax

In this section, we will take a quick look at the syntax of Python, and in particular how it differs from other common programming languages. We will use a simple Python program as an example:

def fibonacci(n):
    a,b = 0,1
    for i in range(n):
        a, b = b, a + b


This code defines a function that prints the first n Fibonacci numbers. The code then calls the function to print the first 10 numbers.

We can start to get a flavour of Python just from these few lines of code. The observations below are covered in more detail in the rest of the topics.

Function calls

def fibonacci(n):

Python declares functions using the def keyword, and uses a colon at the end of function signature.

Unlike many languages, Python uses indentation to specify the program structure. The body of a function, or if statement or loop is indented by a fixed number of spaces.

Python doesn’t use curly brackets or *begin…end around blocks of code, it relies purely on indentation to define the program structure.

If you use Java or similar languages, you probably indent your code like that anyway, to make it more readable. The difference with Python is that you must indent your code correctly because indentation has meaning. This may seem strange at first, but it removes a lot of clutter from your code when you get used to it.

A second thing you might notice is that the function parameter n is not given a type:

In Python, variables do not have a type. Data has a type, for example int or string, but any variable can hold any type of data.

On a related point, the function doesn’t specify a return type. This is because:

A function can return a value of any type. All functions return a value, if you don’t specify a return value, a value of None is returned by default.

None is Python’s equivalent of void or nil. A None value is simply an object of type None.

Variable declarations

This next line declares and assigns values to variables a (set to 0) and b (set to 1). Notice again the variables do not have a type, but the values (0 and 1) are both ints.

    a,b = 0,1

Another thing to notice here is that there is no semicolon at the end of the line:

Python doesn’t require semicolons, provided you put each statement on its own line.

for loops

Here is a Python for loop:

    for i in range(n):

This loops n times, with i counting from 0 to n - 1. It is equivalent to the C-like loop:

for (int i = 0; i < n; i++)

The Python loop is arguably more readable. As you will see later, it also provides a very consistent way of looping over lists and other sequences.

Printing to the console

print is a built in function, providing an easy way to print to the console. Python can be used to create quick scripts or command line utilities.


Swapping values

Here is how you swap the values of two variables in Python:

        a, b = b, a + b

This uses a technique called tuple packing which is very useful for handling multiple values like this.

Running the program

Anything which is outside of any function definition is executed by Python:


There is no need for a main function. This makes Python great for creating scripts, you can just type in the code you need, with no boiler plate.