Software tutorial/Loops
for loops
Looping with a for loop is used when you know ahead of time how many iterations will be required.
MATLAB | Python |
---|---|
A simple for-loop can be written as: for k = 0:4
disp(k)
end
and the output should be: 0
1
2
3
4
The reason why this works is that instruction k = 0:4 creates a vector, starting at 0 and ending at 4, in steps of 1.0. You can verify this in MATLAB: >> k = 0:4
k =
0 1 2 3 4
Try looping and printing with these vectors. What is the output you expect when:
If you need help in MATLAB, you can type, for example: help colon
and it will show you how to use the colon operator. |
A simple for-loop can be written as: for k in range(5):
print(k)
and the output should be: 0
1
2
3
4
Why does the output not include the number 5? In Python, you can always check what a function does by using the help command. For example: >>> help(range)
range([start,] stop[, step]) -> list of integers
Return a list containing an arithmetic progression of integers.
range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
When step is given, it specifies the increment (or decrement).
For example, range(4) returns [0, 1, 2, 3]. The end point is omitted!
These are exactly the valid indices for a list of 4 elements.
This shows you that the only input required to the range() function is the stop input - the other inputs, [start] and [step] have square brackets in the HELP text, indicating that they are optional inputs. Using the above HELP text, what would you expect in Python if you typed:
|
Key differences
-
- In MATLAB: you must close the loop with an end statement
- In Python: you do not close the loop
-
- In MATLAB: you must end every line with a semicolon ";" to prevent it showing the value of the variable.
- In Python: you do not need to add semicolons; output will not be printed unless you explicitly use the print function.
while loops
Looping with a while loop is used when you do not know ahead of time how many iterations will be required.
MATLAB | Python |
---|---|
A simple while-loop can be written as: x = 100;
while x > 5
x = x/2.5;
disp(x)
end
and the output you should see is: 40
16
6.4000
2.5600
Why is there a displayed output of 2.56? |
A similar while-loop can be written in Python as: x = 100
while x > 5:
x = x / 2.5
print(x)
and you should see the output as: 40.0
16.0
6.4
2.56
You could be even more concise in Python, if you prefer: x = 100
while x > 5:
x /= 2.5 # note the difference
print(x)
Try the following commands in Python: a = 10.0
a += 3 # what is the value of variable a?
a -= 5
a *= 2
a /= 4 # and the final value of a is ....
|