Boolean functions. Some functions, like is_prime() and is_square() return True or False.

Defining a function

You can in fact make your own functions. Here’s one that squares whatever you give it. The command return tells it what to send back as its ‘answer’. When you evaluate this it won’t print anything since it is just defining the function (creating it in memory).

Here’s how you can use the function you made.

Conditionals and cases

Booleans (thing returning True/False) can be used in if/else statements. You should indent the portion of code that depends on the Boolean.

Loops

A for loop will loop through a prescribed range. (It creates the range first, which takes computer memory.) Indentation matters. Notice how `range(1,n)’ doesn’t include the endpoint ($n$).

A while loop will keep repeating until you tell it to stop. It’s a bit more work to set up than a for loop, but it doesn’t create the whole range beforehand. To control the loop, you use any Boolean, i.e. anything which returns True or False.

Here's a while loop that will find the first integer >= 2 which is composite:

Here's an example of a while loop which looks for an integer with exactly 3 factors.

Here's an example of a while loop which looks for an element of a specified multiplicative order modulo $n$.

Random numbers

Here's a standard way to get a random integer in a given range:

Lists

Lists (which are ordered) are often very useful. Here's how to initialize a list with a sequence in it, in this case the first 10 squares. It's similar to set builder notation.

Here's a way to do the same thing with a loop. It demonstrates how to add elements to a list.

You can make a list of primes:

You can call elements of a list by their positions:

A little exercise, and advice

A general hint to avoid confusing bugs: Build your code in testable steps. For example, if you want to run a loop which does thing A repeatedly, program thing A without the loop first, and make sure it is all working, then build the loop you are interested in with nothing inside, and test that, before combining them. You may also wish to use print statements so you can watch what your code is doing step-by-step.

To test your skills, create a while loop which finds the first integer greater than 101 which is square. You can use the function is_square() to check if something is a square. It returns True or False.