# Mark Brown Tuition

Physics, Mathematics and Computer

Science Tuition & Resources

# Introduction to Python - Lesson Two

Posted on 27-05-19 in Computing

## This post is part 2 of the Introduction to Programming" series

- Introduction to Python - Lesson One
Introduction to programming using Python and Turtle

- Introduction to Python - Lesson Two
Continuing our introduction to Python using Turtle

- Introduction to Python - Lesson Three
Looking at loops and conditionals in more detail

- Introduction to Python - Lesson Four
Further exploration of Turtle and an introduction to colour

- Introduction to Python using Turtle : A Review
A brief review of the first part of this Turtle course

In this article we will cover :

- Review of last classes material
- Manipulation of variables
- Introduction to conditionals

## Review

In the last class we learnt how to :

*forward, left, right*commands in Turtle- Using
*for _ in range(X)*for looping - Using variables in place of numbers

**Review Exercises**

- Draw the following shapes

Hint!If you're stuck review material covered in the previous class! Introducing Python to students

## Variables in more detail

In the last class we began using variables. These are useful for holding useful information we need in multiple places in our code or which we wish to alter!

For example, we can draw a spiral like

```
import turtle as tl
step = 50
angle = 90
for _ in range(16):
tl.forward(step)
tl.left(angle)
step = step + 10
tl.exitonclick()
```

produces

So what's happening here?
First we have created a variable and given it a value of 50, `side = 50`

.

In programming we use the *equals* symbol to mean **assignment**.
Everything on the **right** side, is stored in a variable with the name on the **left**.
Here are some examples of valid variables :

```
side = 100
angle_in_degrees = 45
height_of_student = 150
```

Note how we use the underscore (_) character to write longer variable names. In Python it is good practice to make your variable names understandable. Don't use single letter variables unless it makes sense!

```
x,y = 5,10 # this is fine as x,y mean a position
i = 0 # i, short for index, is great for counting, do this.
a = 45 # this is bad! We have no idea what a is!
```

We can alter variables like we do in the spiral example.
Here we have the line `side = side + 10`

.
The **right** hand side is run first.
If side contains the number **50**, we then add **10**.
The result **60** is stored as the new value of side.
This is why we get a spiral!

We can do many mathematical operations in Python

`side = side - 5`

will subtract 5 from*side*`edge = edge / 2`

will divide*edge*by 2`triangle_edge = triangle_edge * 2`

will double*triangle_edge*

Let's introduce a new method called **width**

```
pen_width = 5
tl.width(pen_width)
```

This will set the pen to be 5 units wide!

**Exercise Set 1**
Alter the above spiral code using **width** to match the folllowing!
Match the operations used to the spirals we see!

## What if? Introducing Conditionals

To make anything more complicated, we will need to introduce conditionals.
These are tests we can perform.
If a test is **True** we can run that particular bit of code!
Let's consider a case where we have width of 1 if the spiral side is less than or equal to 100 otherwise 10.

In code we write this as

```
import turtle as tl
step = 30
angle = 90
for _ in range(16):
if step <= 100:
pen_width = 1
else:
pen_width = 10
tl.width(pen_width)
tl.forward(step)
tl.left(angle)
step = step + 10
tl.exitonclick()
```

This produces

The key bit of code here is

```
if step <= 100:
pen_width = 1
else:
pen_width = 10
```

The first line is of the form `if <TEST> :`

where **<TEST>** is, in our cases so far, just inequalities.
In later classes we will look at many more tests.
We can see, like in the loop, we must indent our code.
We have two indented blocks here.
The first runs if the test is True, the second runs if the test is false.

**Exercise Set 2**

Question!var = 5 var < 6

Answer!: This would beTrueas 5 is less than 6.

Determine if the following tests are **True** or **False**.

edge = 2 edge >= -1

var = 0 var >= -2

edge = -2 edge < 4

edge = 7 edge >= -5

side = 0 side <= -4

edge = 7 edge > 7

square_length = -1 square_length <= 4

edge = 7 edge <= -1

square_length = 2 square_length < 9

var = 1 var <= -4

var = 0 var > 4

side = 1 side >= -1

var = 4 var < -2

var = 4 var >= 4

square_length = 1 square_length < -5

square_length = 9 square_length <= 3

var = -2 var <= 9

square_length = -1 square_length > 9

var = 3 var >= 8

edge = 1 edge <= 4

- Alter the conditional spiral code the produce the following images

## Conclusion

Today we have learnt the **width** method, looked at more complex uses of variables and concluded with an introduction to conditionals.