Python III
Mary PW Chin 钱碧慧博士 PhD (Wales), MSc (Surrey) E-mail:
THIRD BYTE OF PYTHON a slideshow
Slides here are continuously being revised and updated. If you have been here before, your browser might have some old files cached. To ensure that you see the latest version, please follow the instructions given in the following link: ☞ how to clear browser cache .
Synopsis
Module 'matplotlib', its class 'Circle' and its method 'subplots';
Module 'sys';
Module 'numpy' and its methods: 'floor' and 'ceil';
Colours;
Saving plots to file;
More number sequences;
Nested loops;
Taking input during runtime from keyboard (standard input);
Arrays;
Functions and returns;
While;
Remembering values before they get overwritten.
Do not forget
For every program you encounter it is always an excellent exercise to change the variable names to names which are most meaningful to you, then make the program run. You will gain deeper understanding of the program. You will see the program in a new light. Everyone is different: variable names most intuitive to me differ from variable names most intuitive to you. My programs are written with variable names most intuitive to me, so you should change them to names most intuitive to you so that the program flow becomes more obvious.
For every program you encounter you should be able to
Identify parts you may change:
variables;
arrays;
arguments.
Identify parts you may not change:
imported modules and methods;
functions and keywords.
List the exact order line by line how Python executes the program.
Draw the flowchart.
Exercise
Refer to program version #1 from the slides. What happens if we move line #10 to
the line before line #3?
the line before line #19?
the line after line #19?
Refer to program version #1 from the slides. What happens if we move lines #12-#17 to the line before line #3?
For program version #4, mark out the:
variable names;
arguments;
functions;
keywords;
modules;
methods.
Repeat Exercise 3 with program version #5.
Repeat Exercise 3 with program version #7.
Repeat Exercise 3 with program version #8.
Repeat Exercise 3 with program version #9.
Repeat Exercise 3 with program version #10.
Repeat Exercise 3 with program version #11.
Repeat Exercise 3 with program version #12.
Repeat Exercise 3 with program version #13.
Draw the flowchart for program version #8.
Draw the flowchart for program version #12.
In this lesson we made 12 revisions to the program. Summarise the improvement in each version in a 3-column table:
version improvement in plain English technical modification in Python
#1 to #2
#2 to #3
#3 to #4
…
…
…
#12 to #13
Write a program that prints the following with as few repetitions as you can:
*..*..*..*..*
*..*..*..*..*
*..*..*..*..*
*..*..*..*..*
*..*..*..*..*
*..*..*..*..*
*..*..*..*..*
*..*..*..*..*
*..*..*..*..*
Write a program that prints the following with as few repetitions as you can:
*
**
***
****
*****
******
*******
********
*********
**********
*********
********
*******
******
*****
****
***
**
*
Write a program that prints the following with as few repetitions as you can:
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
Hints:
Identify what is varying by a periodic trend: is it the number of asterisks or the number of spaces?
Build a two-column table, each row of your table corresponding to each row from the diamond above:
1st column: with the number of spaces before the first asterisk on each line;
2nd column: with the number of spaces between the asterisks on each line.
Let the 1st column be x, let the 2nd column be y, we can see that they have a linear relation and will fit into an equation y = mx + c, where m is the gradient and c is the offset/constant.
Select any pair of rows from your table, use the x and y values to solve the simultaneous equations to derive m and c.
Apply the formula you have just derived for the nested loops in your program.
Write a program that prints the following with as few repetitions as you can:
* *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* *
What we have learned so far
Python keywords:
for
in
import
as
if
elif
else
and
or
with
as
Python keywords:
for … in …:
import
if … and/or …:
if …: … elif …: … else:
with … as …:
Python built-in functions:
print(…, end='…')
range(…, …, …)
help(…)
dir(…)
int(…)
str(…)
range(…)
Python modules, methods and classes:
random.randint(…, …)
matplotlib.pyplot.Circle(…, …)
fig, ax = matplotlib.pyplot.subplots(); ax.add_artist(…); fig.savefig(…),
numpy.floor(…), numpy.ceil(…)
numpy.ndarray.astype(…)
Linux commands (and options):