Python
Programming
Hans-Petter Halvorsen
https://www.halvorsen.blog
Python Programming
Python Programming
Hans-Petter Halvorsen
2019
Python Programming
Qc Hans-Petter
Halvorsen August
12, 2020 ISBN:978-
82-691106-4-7
1
Preface
Python is a popular programming language, and it is one of the most
used pro- gramming languages today.
Python works on all the main platforms and operating systems used
today, such Windows, macOS, and Linux.
Python is a multi-purpose programming language, which can be use
for simu- lation, creating web pages, communicate with database
systems, etc.
My Blog/Web Site [1]:
https://www.halvorsen.blog
Here you find lots of technical resources about Technology,
Programming, Soft- ware Engineering, Automation and Control,
Industrial IT, etc.
Here you find my Web page with Python resources:
https://www.halvorsen.blog/documents/programming/python/
These resources are a supplement to this textbook. Here you can
download the software, download code examples, etc.
This Textbook is written in LATEXusing Overleaf.
2
LATEXis a document preparation system used for the communication
and publi- cation of scientific documents.
3
For more information about LATEX:
https://www.latex-project.org
Overleaf is a web-bases LATEXsystem, meaning you can write your
LATEXdocuments in your web browser, you co-work and share
documents with others.
For more information about Overleaf:
https://www.overleaf.com
Python Books
You find other Python textbooks within different domains on my
Python Web page:
https://www.halvorsen.blog/documents/programming/
python/ Python Books:
• Python Programming - This is a textbook in Python Programming
with lots of Practical Examples and Exercises. You will learn
the necessary foundation for basic programming with focus on
Python.
• Python for Science and Engineering - This is a textbook in
Python Programming with lots of Examples, Exercises, and
Practical Applications within Mathematics, Simulations, etc.
The focus is on numerical calcu- lations in mathematics and
engineering. Necessary theory is presented in addition to
many practical examples.
• Python for Control Engineering - This is a textbook in
Python Pro- gramming with lots of Examples, Exercises, and
Practical Applications within Mathematics, Simulations,
Control Systems, DAQ, Database Sys- tems, etc. The focus is
on the use of Python within measurements, data collection
(DAQ), control technology, both analysis of control systems
(stability analysis, frequency response, ...) and
implementation of control systems (PID, etc.). Required
theory is presented in addition to many practical examples
and exercises in Python.
• Python for Software Development - This is a textbook in
Python Pro- gramming with lots of Examples, Exercises, and
Practical Applications within Software Systems, Software
Development, Software Engineering, Database Systems, Web
Application Desktop Applications, GUI Applica- tions, etc. The
focus is on the use of Python for creating modern Software
Systems. Required theory is presented in addition to many
4
practical ex- amples and exercises in Python.
5
Programming
The way we create software today has changed dramatically the
last 30 years, from the childhood of personal computers in the
early 80s to today’s powerful devices such as Smartphones, Tablets
and PCs.
The Internet has also changed the way we use devices and
software. We still have traditional desktop applications, but Web
Sites, Web Applications and so- called Apps for Smartphones, etc.
are dominating the software market today.
We need to find and learn Programming Languages that are
suitable for the New Age of Programming.
We have today several thousand different Programming Languages
today. I guess you will need to learn more than one Programming
Language to survive in today’s software market.
You find lots of Programming Resources here:
https://www.halvorsen.blog/documents/programming/
Software Engineering
Software Engineering is the discipline for creating software
applications. A systematic approach to the design, development,
testing, and maintenance of software.
The main parts or phases in the Software Engineering process are:
• Planning
• Requirements Analysis
• Design
• Implementation
• Testing
• Deployment and Maintenance
You find lots of Software Engineering Resources here:
https://www.halvorsen.blog/documents/programming/softwareengineering/
6
7
Contents
I Getting Started with Python 10
1 Introduction 11
1.1 The New Age of Programming.......................................................11
1.2 MATLAB...................................................................................................15
2 What is Python? 17
2.1 Introduction to Python.......................................................................17
2.1.1 Interpreted vs. Compiled.....................................................18
2.2 Python Packages..................................................................................19
2.2.1 Python Packages for Science and Numerical Computations 20
2.3 Anaconda.................................................................................................20
2.4 Python Editors......................................................................................21
2.4.1 Python IDLE..............................................................................21
2.4.2 Visual Studio Code.................................................................22
2.4.3 Spyder..........................................................................................22
2.4.4 Visual Studio.............................................................................22
2.4.5 PyCharm......................................................................................22
2.4.6 Wing Python IDE.....................................................................23
2.4.7 Jupyter Notebook.....................................................................23
2.5 Resources................................................................................................23
2.6 Installing Python...................................................................................23
2.6.1 Python Windows 10 Store App..........................................24
2.6.2 Installing Anaconda................................................................24
2.6.3 Installing Visual Studio Code.............................................24
3 Start using Python 26
3.1 Python IDE..............................................................................................26
3.2 My first Python program..................................................................26
3.3 Python Shell...........................................................................................27
3.4 Running Python from the Console................................................27
3.4.1 Opening the Console on macOS........................................28
3.4.2 Opening the Console on Windows....................................29
3.4.3 Add Python to Path................................................................29
3.5 Scripting Mode......................................................................................31
3.5.1 Run Python Scripts from the Python IDLE..................31
3.5.2 Run Python Scripts from the Console (Terminal) macOS 32
3.5.3 Run Python Scripts from the Command Prompt in Win-
8
dows..............................................................................................33
3.5.4 Run Python Scripts from Spyder......................................33
4 Basic Python Programming 36
4.1 Basic Python Program.......................................................................36
4.1.1 Get Help......................................................................................36
4.2 Variables..................................................................................................36
4.2.1 Numbers......................................................................................38
4.2.2 Strings..........................................................................................39
4.2.3 String Input...............................................................................40
4.3 Built-in Functions.................................................................................40
4.4 Python Standard Library..................................................................41
4.5 Using Python Libraries, Packages and Modules.....................42
4.5.1 Python Packages.....................................................................44
4.6 Plotting in Python................................................................................44
4.6.1 Subplots.......................................................................................47
4.6.2 Exercises.....................................................................................49
II Python Programming 50
5 Python Programming 51
5.1 If ... Else..................................................................................................51
5.2 Arrays........................................................................................................52
5.3 For Loops.................................................................................................54
5.3.1 Nested For Loops....................................................................57
5.4 While Loops............................................................................................58
5.5 Exercises..................................................................................................58
6 Creating Functions in Python 60
6.1 Introduction............................................................................................60
6.2 Functions with multiple return values.........................................62
6.3 Exercises..................................................................................................63
7 Creating Classes in Python 66
7.1 Introduction............................................................................................66
7.2 The init () Function.........................................................................67
7.3 Exercises..................................................................................................70
8 Creating Python Modules 71
8.1 Python Modules....................................................................................71
8.2 Exercises..................................................................................................72
9 File Handling in Python 74
9.1 Introduction............................................................................................74
9.2 Write Data to a File............................................................................74
9.3 Read Data from a File........................................................................75
9.4 Logging Data to File...........................................................................75
9.5 Web Resources......................................................................................76
9
9.6 Exercises..................................................................................................76
10Error Handling in Python 79
10.1Introduction to Error Handling......................................................79
10.1.1...............................................................Syntax Errors 79
10.1.2....................................................................Exceptions 79
10.2Exceptions Handling...........................................................................80
11Debugging in Python 82
12Installing and using Python Packages 83
12.1What is PIP?...........................................................................................83
III Python Environments and Distributions 84
13Introduction to Python Environments and Distributions 85
13.1Package and Environment Managers...........................................86
13.1.1................................................................................PIP 86
13.1.2...........................................................................Conda 86
13.2Python Virtual Environments.........................................................87
14Anaconda 88
14.1Anaconda Navigator............................................................................88
15Enthought Canopy 90
IV Python Editors 91
16Python Editors 92
17Spyder 94
18Visual Studio Code 96
18.1Introduction to Visual Studio Code...............................................96
18.2Python in Visual Studio Code.........................................................97
19Visual Studio 98
19.1Introduction to Visual Studio..........................................................98
19.2Work with Python in Visual Studio..............................................98
19.2.1....Make Visual Studio ready for Python Programming 99
19.2.2........................................................Python Interactive 99
19.2.3.....................................................New Python Project 100
20PyCharm 106
21Wing Python IDE 108
22Jupyter Notebook 110
22.1JupyterHub...........................................................................................111
10
22.2Microsoft Azure Notebooks...........................................................111
V Python for Mathematics Applications 113
23Mathematics in Python 114
23.1Basic Math Functions......................................................................114
23.1.1......................................................................Exercises 116
23.2Statistics................................................................................................118
23.2.1..............................................Introduction to Statistics 118
23.2.2.......................................Statistics functions in Python 119
23.3Trigonometric Functions.................................................................121
23.4Polynomials..........................................................................................125
VI Resources 128
24Python Resources 129
24.1Python Distributions.........................................................................129
24.2Python Libraries................................................................................129
24.3Python Editors....................................................................................129
24.4Python Tutorials.................................................................................130
24.5Python in Visual Studio..................................................................130
VII Solutions to Exercises 133
11
Part I
Getting Started with
Python
12
Chapter 1
Introduction
With this textbook you will learn basic Python programming. The
textbook contains lots of examples and self-paced tasks that the
users should go through and solve in their own pace.
You will find additional resources on my blog/web
site [1]. https://www.halvorsen.blog
My Web Site about Python is:
https://www.halvorsen.blog/documents/programming/python/
See Figure 1.1
1.1 The New Age of Programming
The way we create software today has changed dramatically the
last 30 years, from the childhood of personal computers in the
early 80s to today’s powerful devices such as Smartphones, Tablets
and PCs.
The Internet has also changed the way we use devices and
software. We still have traditional desktop applications, but Web
Sites, Web Applications and so- called Apps for Smartphones, etc.
are dominating the software market today.
We need to find and learn Programming Languages that are
suitable for the New Age of Programming.
We have today several thousand different Programming
Languages, so why should we learn Python? I guess you will need
to learn more than one Pro- gramming Language to survive in
today’s software market. Python is easy to learn, so it it a good
starting point for new programmers.
Python is an interpreted, high-level, general-purpose programming
language. Created by Guido van Rossum and first released in 1991
13
[2].
14
Figure 1.1: Web Site - Python
Python is a fairly old Programming Language (1991) compared to
many other Programming Languages like C# (2000), Swift (2014),
Java (1995), PHP (1995).
Python has during the last 10 years become more and more
popular. Today, Python has become one of the most popular
Programming Languages.
There are many different rankings regarding which programming
language which is most popular. In most of these ranking, Python
is in top 10.
One of these rankings is the IEEE Spectrum’s ranking of the top
programming languages [3].
From this ranking we see that Python is the most popular
Programming Lan- guage in 2018. See Figure 1.2
As we see in Figure 1.2 they categorize the different Programming
Languages into the following categories:
15
• Web
16
Figure 1.2: The Most Popular Programming Languages
• Mobile
• Enterprise
• Embedded
According to Figure 1.2 we see that Python can be used to
program Web Ap- plications, Enterprise Applications and
Embedded Applications.
So far Python is not used or not optimized for creating Mobile
Applications. We have today 2 major Mobile platforms; iOS
Applications are mainly programmed with the Swift Programming
language, while Android Applications are mainly programmed with
either Java or Kotlin.
Another survey is the ”Stack Overflow Developer Survey 2018” [4].
See Figure 1.3.
As we can see from [5] and Figure 1.4, Python becomes more and
more popular year by year.
Based on Figure 1.4, the source [5] try to predict the future of
Python, see Figure 1.5.
Based on the surveys and statistics mention above, obviously
Python is a pro- gramming language that you should learn.
Lets summarize:
• Python is fun to learn and use and it is also named after the
British comedy group called Monty Python.
• Python has a simple and flexible code structure and the code
is easy to read.
17
Figure 1.3: The Top Programming Languages - Stack Overflow Survey
• Python is highly extendable due to its high number of free
available Python Packaged and Libraries
• Python can be used on all platforms (Windows, macOS and Linux).
• Python is multi-purpose and can be used for to program Web
Applications, Enterprise Applications and Embedded
Applications, and within Data Science and Engineering
Applications.
• The popularity of Python is growing fast.
• Python is open source and free to use
• The growing Python community makes it easy to find
documentation, code examples and get help when needed
In general, Python is a multipurpose programming language that
can be used in many situations. But there is not one programming
language which is best in all kind of situations, so it is important
that you know about and have skills in different languages.
My list of recommendations (one of many):
• Visual Studio and C
• LabVIEW - a graphical programming language well suited for
hardware integration, taking measurements and data logging
• MATLAB - Numerical calculations and Scientific computing
• Python - Numerical calculations, and Scientific computing, etc.
• Web Programming, such as HTML, CSS, JavaScript and a
Server-side framework/programming language like PHP,
ASP.NET (C or VB.NET), Django (Python based)
18
Figure 1.4: The Incredible Growth of Python
• Databases (such as SQL Server and MySQL) and using the
Structured Query Language (SQL) or the upcoming NoSQL
databases
• App Development for the 2 main platforms iOS (XCode using
the Swift Programming Language) and Android (Android
Studio using the Java Programming Language or Kotlin
Programming language)
If you have skills in most of the tools, programming languages and
frameworks mention above, you are well suited for working as a
full-time programmer or software engineer.
1.2 MATLAB
If you are looking for MATLAB, please see the following:
https://www.halvorsen.blog/documents/programming/matlab/
19
Figure 1.5: The Future of Python
20
Chapter 2
What is Python?
2.1 Introduction to Python
Python is an open source and cross-platform programming
language, that has become increasingly popular over the last ten
years. It was first released in 1991. Latest version is 3.7.0.
CPython is the reference implementation of the Python
programming language. Written in C, CPython is the default and
most widely-used implementation of the language.
Python is a multi-purpose programming languages (due to its many
extensions), examples are scientific computing and calculations,
simulations, web develop- ment (using, e.g., the Django Web
framework), etc.
Python Home Page [6]:
https://www.python.org
The programming language is maintained and available from
(Python Software Foundation): https://www.python.org Here you
can download the basic Python features in one package, which
includes the Python programming language in- terpreter, and a
basic code editor, or an integrated development environment,
called IDLE. See Figure 2.1
But this is just the Python core, i.e. the interpreter a very basic
editor, and the minimum needed to create basic Python programs.
Typically you will need more features for solving your tasks. Then
you can in- stall and use separate Python packages created by
third parties. These packages need to be downloaded and installed
separately (typically you use something called PIP), or you choose
to use, e.g., a distribution package like Anaconda.
Python is an object-oriented programming language (OOP), but you
can use Python in basic application without the need to know about
21
or use the object- oriented features in Python.
Python is an interpreted programming language, this means that as a developer
22
Figure 2.1: IDLE - Basic Python Editor
you write Python (.py) files in a text editor and then put those files
into the python interpreter to be executed. Depending on the
Editor you are using, this is either done automatically, or you need
to do it manually.
Here are some important Python sources: [6], [7], [8].
2.1.1 Interpreted vs. Compiled
What are the differences between Interpreted programming
languages and Com- piled programming languages? What kind
should you choose, and why should you bother?
Programming languages generally fall into one of two categories:
Compiled or Interpreted. With a compiled language, code you
enter is reduced to a set of machine-specific instructions before
being saved as an executable file.
Both approaches have their advantages and disadvantages.
23
With interpreted languages, the code is saved in the same format
that you en- tered. Compiled programs generally run faster than
interpreted ones because interpreted programs must be reduced to
machine instructions at run-time. It is usually easier to develop
applications in an interpreted environment because you don’t have
to recompile your application each time you want to test a small
section.
Python is an interpreted programming language, while e.g., C/C++
are trans- lated by running the source code through a compiler,
i.e., C/C++ are compiled languages.
Interpreted languages, in contrast, must be parsed, interpreted,
and executed each time the program is run.
Another example of an interpreted programming language is PHP,
which is mainly used to create dynamic web pages and web
applications.
Compiled languages are all translated by running the source code
through a compiler. This results in very efficient code that can be
executed any number of times. The overhead for the translation is
incurred just once, when the source is compiled; thereafter, it need
only be loaded and executed.
During the design of an application, you might need to decide
whether to use a compiled language or an interpreted language for
the application source code.
Interpreted languages, in contrast, must be parsed, interpreted,
and executed each time the program is run
Thus, an interpreted language is generally more suited for doing
”ad hoc” cal- culations or simulations, while compiled languages
are better for permanent applications where speed is in focus.
2.2 Python Packages
With Python you don’t get so much out of the box. Instead of
having all of its functionality built into its core, you need to install
different packages for different topics.
This approach has advantages and disadvantages. An disadvantage
is that you need to install these packages separately and then later
import these modules in your code.
This is also typical approach for open source software, because
everybody can create their own Python packages and distribute
them. In that way you also find Python packages for almost
24
everything, from Scientific Computing to Web Development.
25
These packages need to be downloaded and installed separately, or
you choose to use, e.g., a distribution package like Anaconda,
where you typically get the packages you need for scientific
computing. With Anaconda you typically get the same features as
with MATLAB.
Lots of Python packages exists, depending on what you are going to solve.
We have Python packages for Desktop GUI Development, Database
Develop- ment, Web Development, Software Development, etc.
See an overview of Applications for Python:
https://www.python.org/about/apps/
See also the Python Package Index (PyPI) web site:
https://pypi.org
Here you can search for, download and install many hundreds
Python Packages within different topics and applications. You can
also make your own Python Packages and distribute them here.
2.2.1 Python Packages for Science and Numerical
Com- putations
Some important Python Packages for Science and Numerical Computations are:
• NumPy - NumPy is the fundamental package for scientific
computing with Python [9]
• SciPy - SciPy is a free and open-source Python library used
for scientific computing and technical computing. SciPy
contains modules for optimiza- tion, linear algebra, integration,
interpolation, special functions, FFT, sig- nal and image
processing, ODE solvers and other tasks common in science
and engineering. [9]
• Matplotlib - Matplotlib is a Python 2D plotting library. [10]
• Pandas - Pandas Python Data Analysis Library [11]
These packages need to be downloaded and installed separately, or
you choose to use, e.g., a distribution package like Anaconda,
where you typically get the packages you need for scientific
computing. With Anaconda you typically get the same features as
with MATLAB.
2.3 Anaconda
Anaconda is a distribution package, where you get Python
compiler, Python packages and the Spyder editor, all in one
package.
26
Anaconda includes Python, the Jupyter Notebook, and other
commonly used packages for scientific computing and data science.
27
They offer a free version (Anaconda Distribution) and a paid
version (Enter- prise) Anaconda is available for Windows, macOS,
and Linux
Web:
https://www.anaconda.com
Wikipedia:
https://en.wikipedia.org/wiki/Anaconda(Pythondistributi
on)
Spyder and the Python packages (NumPy, SciPy, Matplotlib, ...) mention above
+++ are included in the Anaconda Distribution.
2.4 Python Editors
An Editor is a program where you create your code (and where you
can run and test it). Most Editors have also features for
Debugging. For simple Python programs you can use the IDLE
Editor, but for more advanced programs a bet- ter editor is
recommended.
Examples of Python Editors:
• Python IDLE
• Visual Studio Code
• Spyder
• Visual Studio
• PyCharm
• Wing Python IDE
• Jupyter Notebook
These editors are shortly described below and in more detail later
in this text- book.
Which editor you should use depends on your background, what
kind of code editors you have used previously, your programming
skills, what your are going to develop in Python, etc.
2.4.1 Python IDLE
The programming language is maintained and available from
(Python Software Foundation): https://www.python.org Here you
can download the basic Python features in one package, which
includes the Python programming language in- terpreter, and a
basic code editor, or an integrated development environment,
called IDLE. See Figure 2.1
28
Web:
https://www.python.
org
29
2.4.2 Visual Studio Code
Visual Studio Code is a source code editor developed by Microsoft for
Windows, Linux and macOS.
Web:
https://code.visualstudio.com
Resources: Getting Started with Python in Visual Studio Code
2.4.3 Spyder
Spyder is an open source cross-platform integrated development
environment (IDE) for scientific programming in the Python
language.
Web:
https://www.spyder-ide.org
Wikipedia:
https://en.wikipedia.org/wiki/Spyder(software)
Spyder is included in the Anaconda Distribution.
2.4.4 Visual Studio
Microsoft Visual Studio is an integrated development environment
(IDE) from Microsoft. It is used to develop computer programs, as
well as websites, web apps, web services and mobile apps. The
deafult (main) programming language in Visual studio is C, but
many other programming languages are supported.
Visual studio is available for Windows and macOS.
Visual Studio (from 2017), has integrated support for Python, it is
called ”Python Support in Visual Studio”.
Web:
https://visualstudio.microsoft.com
Wikipedia:
https://en.wikipedia.org/wiki/MicrosoftV isualStudio
2.4.5 PyCharm
PyCharm is cross-platform, with Windows, macOS and Linux
versions. The Community Edition is free to use, while the
Professional Edition (paid version) has some extra features.
30
Web:
https://www.jetbrains.com/pycharm/
2.4.6 Wing Python IDE
The Wing Python IDE family of integrated development
environments (IDEs) from Wingware were created specifically for
the Python programming language.
3 different version of Wing exists [12]:
• Wing 101 – a very simplified free version, for teaching
beginning pro- grammers
• Wing Personal – free version that omits some features, for
students and hobbyists
• Wing Pro – a full-featured commercial (paid) version, for
professional programmers
2.4.7 Jupyter Notebook
The Jupyter Notebook is an open-source web application that
allows you to cre- ate and share documents that contain live code,
equations, visualizations and text.
Web:
http://jupyter.org
Wikipedia:
https://en.wikipedia.org/wiki/ProjectJ
upyter
2.5 Resources
Here are some useful Python
• resources: The official Python
Tutorial
- https://docs.python.org/3.7/tutorial/index.html
• The official Python Documentation
- https://docs.python.org/3.7/index.html
• Python Tutorial (w3schools.com) [13]
- https://www.w3schools.com/python/
2.6 Installing Python
31
The Python programming language is maintained and available
from (Python Software Foundation):
32
https://www.python.org
Here you can download the basic Python features in one package,
which includes the Python programming language interpreter, and
a basic code editor, or an integrated development environment,
called IDLE. See Figure 2.1
For basic Python programming this is good enough.
For more advanced Python Programming you typically need a
better Code Ed- itor and additional Packages.
For the basic Python examples in the beginning, the basic Python
software from:
https://www.python.org is good enough.
I suggest you start with the basic Python software in order to learn
the basics, then you can upgrade to a better Editor, install addition
Python packages (either manually or or install Anaconda where
”everything” is included).
2.6.1 Python Windows 10 Store App
Python 3.7 is also available in the Microsoft Store for Windows 10.
The Microsoft Store version of Python 3.7 is a simplified installer
for running scripts and packages.
Microsoft Store version of Python 3.7 is very basic but it’s good
enough to run the simple scripts.
Python 3.7 Microsoft Store edition will receive all updates
automatically when they are released and no manual action is
required from your end.
In order to install the Microsoft Store version of Python just open
Microsoft Store in Windows 10 and search for Python.
2.6.2 Installing Anaconda
The Spyder Code Editor and the Python packages (such as NumPy,
SciPy, mat- plotlib, etc) are included in the Anaconda Distribution.
Download and install
from:
https://www.anaconda.c
om
2.6.3 Installing Visual Studio Code
33
Visual Studio Code code is a simple and easy to use editor that can
be used for many different programming languages.
34
Download and install from:
https://code.visualstudio.com
Getting Started with Python in Visual Studio Code:
https://code.visualstudio.com/docs/python/python-
tutorial
35
Chapter 3
Start using Python
In this chapter we will start to use Python in some simple examples.
3.1 Python IDE
The basic code editor, or an integrated development environment,
called IDLE. See Figure 3.1.
Other Python Editors will be discussed more in detail later. For
now you can use the basic Python IDE (IDLE) or Spyder if you have
installed the Anaconda distribution package.
Figure 3.1: Python Shell / Python IDLE Editor
3.2 My first Python program
We will start using Python and create some code examples.
36
Example 3.2.1. Plotting in Python
Lets open your Python Editor and type the following:
1 p r i n t ( ” H e l l o World ! ” )
Listing 3.1: Hello World Python Example
[End of Example]
An extremely useful command is help(), which enters a help
functionality to explore all the stuff python lets you do, right from
the interpreter. Press q to close the help window and return to the
Python prompt.
You can use Python in different ways, either in ”interactive” mode
or in ”Script- ing” mode.
The python program that you have installed will by default act as
something called an interpreter. An interpreter takes text
commands and runs them as you enter them - very handy for trying
things out.
Yo can run Python interactively in different ways either using the
Console which is part of the operating system or the Python IDLE
and the Python Shell which is part of the basic Python installation
from https://www.python.org.
3.3 Python Shell
In interactive Mode you use the Python Shell as seen in Figure 3.1.
Here you type one and one command at a time after the ”>>>”
sign in the Python Shell.
1 >>> p r i n t ( ” H e l l o World ! ” )
3.4 Running Python from the Console
A console (or ”terminal”, or ‘command prompt’) is a textual way to
interact with your OS (Operating System).
The python program that you have installed will by default act as
something called an interpreter. An interpreter takes text
commands and runs them as you enter them - very handy for trying
37
things out.
Below we see how we can run Python from the Console which is part of the OS.
38
3.4.1 Opening the Console on macOS
The standard console on macOS is a program called Terminal.
Open Terminal by navigating to Applications, then Utilities, then
double-click the Terminal pro- gram. You can also easily search for
it in the system search tool in the top right.
The command line Terminal is a tool for interacting with your
computer. A window will open with a command line prompt
message, something like this:
Last l o g i n : Tue Dec 11 08:33:51 on console
computername : ˜ username
Just type python at your console, hit Enter, and you should enter
Python’s Interpreter.
1 Last l o g i n : Tue Dec 11 12 : 3 4 : 16 on ttys 0 0 0
2 Hans−Petter −Work−MacBook−Air : ˜ hansha$ python
3 Python 3 . 6 . 5 | Anaconda , Inc . | ( d e f a u l t , Apr 26 2018 , 0 8 : 4
2:37)
4 [GCC 4 . 2 . 1 Compatible Clang 4 . 0 . 1 ( ta g s /RELEASE 401/ f i n a l
) ] on
darwin
5 Type ” help ” , ” c o p yr i g h t ” , ” c r e d i t s ” or ” l i c e n
s e ” f o r more i n f o r m a t i o n .
The prompt >>> on the last line indicates that you are now in an
interactive Python interpeter session, also called the “Python
shell”. This is different from the normal terminal command
prompt!
You can now enter some code for python to run. Try:
>>> p r i n t (” H e l l o World ”)
Se also Figure 3.2.
Figure 3.2: Console
macOS Try other Python commands, e.g.:
1 >>> a = 5
2 >>> b = 2
3 >>> x = 5
4 >>> y = 3∗ a + b
39
5 >>> y
3.4.2 Opening the Console on Windows
Window’s console is called the Command Prompt, named cmd. An
easy way to get to it is by using the key combination Windows+R
(Windows meaning the windows logo button), which should open a
Run dialog. Then type cmd and hit Enter or click Ok.
You can also search for it from the start menu.
It should look like:
C: \ Users \ myusername>
Just type python in the Command Prompt, hit Enter, and you
should enter Python’s Interpreter. See Figure 3.3.
Figure 3.3: Command Prompt Windows
If you get an error message like this:
’python’ is not recognized as an internal or external command,
operable program or batch file.
Then you need to add Python to your path. See instructions below.
Note! This is also an option during the setup. While installing you
can se- lect ”Add Python.exe to path”. This option is by default set
to ”Off”. To get that option you need to select ”Customize”, not
using the ”Default” installation.
3.4.3 Add Python to Path
In the Windows menu, search for “advanced system settings” and
select View advanced system settings.
In the window that appears, click Environment Variables. . . near
the bottom right. See Figure 3.4.
40
Figure 3.4: Windows System Properties
In the next window, find and select the user variable named Path
and click Edit. . . to change its value. See Figure 3.5.
Select ”New” and add the path where ”python.exe” is located. See
Figure 3.6. The Default Location is:
C: \ Users \ u s e r \AppData\ Local \ Programs \ Python \ Python37 −32\
Click Save and open the Command Prompt once more and enter
”python” to verify it works. See Figure 3.3.
41
Figure 3.5: Windows System Properties
3.5 Scripting Mode
In ”Scripting” mode you can write a Python Program with
multiple Python commands and then save it as a file (.py).
3.5.1 Run Python Scripts from the Python IDLE
From the Python Shell you select File → New File, or you can open
an existing Pytho program or Python Script by selecting File →
Open...
Lets create a new Script and type in the following:
1 print(”Hello”)
2 p r i n t ( ”World” )
3 p r i n t ( ”How are you?” )
In Figure 3.7 we see how this is done. As you see we can enter
many Python commands that together makes a Python program or
Python script.
From the Python Shell you select→Run Run Module or hit F5 in
order to run or execute the Python Script. See Figure 3.8.
42
Figure 3.6: Windows System Properties
The IDLE editor is very basic, for more complicated tasks you
typically may prefer to use another editor like Spyder, Visual Studio
Code, etc.
3.5.2 Run Python Scripts from the Console
(Terminal) macOS
From the Console (Terminal) on macOS:
1 $ cd / Users / username / Downloads
2 $ python h e l l o w o r l d . py
Note! Make sure you are at your system command prompt, which
will have $ or > at the end, not in Python mode (which has >>>
instead)!
See also Figure 3.9.
Then it responds
with:
1 Hello
World 43
How are you?
2
3
44
Figure 3.7: Python Script
3.5.3 Run Python Scripts from the Command
Prompt in Windows
From Command Prompt in Window:
1 > cd /
2 > cd Temp
3 > python h e l l o w o r l d . py
Note! Make sure you are at your system command prompt, which will have >
at the end, not in Python mode (which has >>> instead)!
See also Figure 3.10.
Then it responds
with:
1 Hello
2 World
3 How are you?
3.5.4 Run Python Scripts from Spyder
If you have installed the Anaconda distribution package you can use
the Spyder editor. See 3.11.
In the Spyder editor we have the Script Editor to the left and the
interactive Python Shell or the Console window to the right. See
See 3.11.
45
Figure 3.8: Running a Python Script
Figure 3.9: Running Python Scripts from Console window on macOS
Figure 3.10: Running Python Scripts from Console window on macOS
46
Figure 3.11: Running a Python Script in Spyder
47
Chapter 4
Basic Python Programming
4.1 Basic Python Program
We will start using Python and create some code
examples. We use the basic IDLE editor (or
another Python Editor)
Example 4.1.1. Hello World Example
Lets open your Python Editor and type the following:
1 p r i n t ( ” H e l l o World ! ” )
Listing 4.1: Hello World Python Example
[End of Example]
4.1.1 Get Help
An extremely useful command is help(), which enters a help
functionality to explore all the stuff python lets you do, right from
the interpreter.
Press q to close the help window and return to the Python prompt.
4.2 Variables
Variables are defined with the assignment operator, “=”. Python is
dynamically typed, meaning that variables can be assigned without
declaring their type, and that their type can change. Values can
48
come from constants, from computation involving values of other
variables, or from the output of a function.
Python
49
Example 4.2.1. Creating and using Variables in Python
We use the basic IDLE (or another Python Editor) and type the following:
1 >>> x = 3
2 >>> x
3 3
Listing 4.2: Using Variables in Python
Here we define a variable and sets the value equal to 3 and then
print the result to the screen.
[End of Example]
You can write one command by time in the IDLE. If you quit IDLE
the variables and data are lost. Therefore, if you want to write a
somewhat longer program, you are better off using a text editor to
prepare the input for the interpreter and running it with that file
as input instead. This is known as creating a script.
Python scripts or programs are save as a text file with the extension .py
Example 4.2.2. Calculations in Python
We can use variables in a calculation like this:
1 x = 3
2 y = 3∗
3
x prin
t(y)
Listing 4.3: Using and Printing Variables in Python
We can implementing the formula y = ax + b like this:
1 a = 2
2 b = 5
3 x = 3
4
5 y = a∗x
6
7 + bprint
(y) Listing 4.4: Calculations in Python
As seen in the examples, you can use the print() command in order to
show the values on the screen.
[End of Example]
50
A variable can have a short name (like x and y) or a more
descriptive name (sum, amount, etc).
You don need to define the variables before you use them (like you
need to to in, e.g., C/C++/C).
Figure 4.1 show these examples using the basic IDLE editor.
Figure 4.1: Basic Python
Here are some basic rules for Python variables:
• A variable name must start with a letter or the underscore character
• A variable name cannot start with a number
• A variable name can only contain alpha-numeric characters (A-z,
0-9) and underscores
• Variable names are case-sensitive, e.g., amount, Amount and
AMOUNT are three different variables.
4.2.1 Numbers
There are three numeric types in Python:
• int
• float
• complex
51
Variables of numeric types are created when you assign a value to
them, so in normal coding you don’t need to bother.
Example 4.2.3. Numeric Types in Python
1 x = 1 # int
2 y = 2.8 # float
3 z = 3 + 2 j # complex
Listing 4.5: Numeric Types in Python
This means you just assign values to a variable without worrying
about what kind of data type it is.
1 p r i n t ( type ( x ) )
2 p r i n t ( type (
3 y))print(
type ( z ) )
Listing 4.6: Check Data Types in Python
If you use the Spyder Editor, you can see the data types that a
variable has using the Variable Explorer (Figure 4.2):
Figure 4.2: Variable Editor in Spyder
[End of Example]
4.2.2 Strings
Strings in Python are surrounded by either single quotation marks,
or double quotation marks. ’Hello’ is the same as ”Hello”.
Strings can be output to screen using the print function. For example: print(”Hello”).
Example 4.2.4. Plotting in Python
Below we see examples of using strings in Python:
1 a = ” H e l l o World ! ”
2
3 print (a)
4
5 print(a[
6
7 1])
8 print(a[2:5])
print(len(a))
52
9 p r i n t ( a . upper ( ) )
10 p r i n t ( a . r e p l a c e ( ”H”
11 , ”J” ) ) p r i n t ( a . s p l i t (
” ”))
Listing 4.7: Strings in Python
As you see in the example, there are many built-in functions form
manipulating strings in Python. The Example shows only a few of
them.
Strings in Python are arrays of bytes, and we can use index to get a
specific character within the string as shown in the example code.
[End of Example]
4.2.3 String Input
Python allows for command line input.
That means we are able to ask the user for input.
Example 4.2.5. Plotting in Python
The following example asks for the user’s name, then, by using the
input() method, the program prints the name to the screen:
1 p r i n t ( ” Enter your name : ” )
2 x = input ( )
3 p r i n t ( ” Hello , ” + x )
Listing 4.8: String Input
[End of Example]
4.3 Built-in Functions
Python consists of lots of built-in functions. Some examples are the
print(9 function that we already have used (perhaps without
noticing it is actually a Built-in function).
Python also consists of different Modules, Libraries or Packages.
These Mod- ules, Libraries or Packages consists of lots of
predefined functions for different topics or areas, such as
mathematics, plotting, handling database systems, etc. See Section
4.4 for more information and details regarding this.
In another chapter we will learn to create our own functions from scratch.
53
4.4 Python Standard Library
Python allows you to split your program into modules that can be
reused in other Python programs. It comes with a large collection
of standard modules that you can use as the basis of your
programs.
The Python Standard Library consists of different modules for
handling file I/O, basic mathematics, etc. You don’t need to install
these separately, but you need to important them when you want
to use some of these modules or some of the functions within these
modules.
The math module has all the basic math functions you need, such
as: Trigono- metric functions: sin(x), cos(x), etc. Logarithmic
functions: log(), log10(), etc. Constants like pi, e, inf, nan, etc. etc.
Example 4.4.1. Using the math module
We create some basic examples how to use a Library, a Package or a Module:
If we need only the sin() function we can do like this:
1 from math import sin
2
3 x = 3 . 14
4 y = sin(x)
5
6 print(y)
If we need a few functions we can do like this
1 from math import s in , cos
2
3 x = 3 . 14
4 y = sin(
5 x)print
6 (y)
7
8 y = cos (
x)print
If we need many functions we can do like this:
1 from math import ∗
2
3 x = 3 . 14
4 y = sin(
5 x)print
6 (y)
7
8 y = cos (
x)print
We can also use this alternative:
1 import math
2
3 x = 3 . 14
4 y = math . s i n ( x )
5
print(y) 54
6
55
We can also write it like this:
1 import math as mt
2
3 x = 3 . 14
4 y = mt . s i n ( x )
5
6 print(y)
[End of Example]
There are advantages and disadvantages with the different
approaches. In your program you may need to use functions from
many different modules or pack- ages. If you import the whole
module instead of just the function(s) you need you use more of the
computer memory.
Very often we also need to import and use multiple libraries where
the different libraries have some functions with the same name but
different use.
Other useful modules in the Python Standard Library are
statistics (where you have functions like mean(), stdev(), etc.)
For more information about the functions in the Python Standard
Library, see:
https://docs.python.org/3/library/index.html
4.5 Using Python Libraries, Packages and
Mod- ules
Rather than having all of its functionality built into its core, Python
was de- signed to be highly extensible. This approach has
advantages and disadvantages. An disadvantage is that you need to
install these packages separately and then later import these
modules in your code.
Some important packages are:
• NumPy - NumPy is the fundamental package for scientific
computing with Python
• SciPy - SciPy is a free and open-source Python library used
for scientific computing and technical computing. SciPy
contains modules for optimiza- tion, linear algebra, integration,
interpolation, special functions, FFT, sig- nal and image
processing, ODE solvers and other tasks common in science
and engineering.
56
• Matplotlib - Matplotlib is a Python 2D plotting library
57
Lots of other packages exists, depending on what you are going to solve.
These packages need to be downloaded and installed separately, or
you choose to use, e.g., a distribution package like Anaconda.
Here you find an overview of the NumPy library:
http://www.numpy.org
Here you find an overview of the SciPy library:
https://www.scipy.org
Here you find an overview of the Matplotlib library:
https://matplotlib.org
You will learn the basics features in all these libraries. We will use
all of the in different examples and exercises throughout this
textbook.
Example 4.5.1. Using libraries
In this example we use the NumPy library:
1 import numpy as np
2
3 x = 3
4
5 y = np . s i n
6
7 (x)print(
y)
In this example we use both the math module in the Python
Standard Library and the NumPy library:
1 import math as mt
2 import numpy as
3
4 np x = 3
5
6 y = mt . s i n (
7
8 x)print(y)
9
10
11 y = np . s i n
12
13 (x)print(
Note! As seen in this example we use a function called sin() which
exists both in the math module in the Python Standard Library and
the NumPy library. In this case they give the same results. In this
case the following code is not recommended:
1 from math import ∗
2 from numpy import ∗
3
4 x = 3
5
58
6 y = sin(x)
7
8 print(y)
9
10
11 y = sin(
12
13 x)print
In
( y )this case it works, but assume you have 2 different functions
with the same name that have different meaning in 2 different
libraries.
[End of Example]
4.5.1 Python Packages
In addition to the Python Standard Library, there is a growing
collection of sev- eral thousand components (from individual
programs and modules to packages and entire application
development frameworks), available from the Python Package
Index.
Python Package Index (PYPI):
https://pypi.org
Here you can download and install individual Python packages.
An easy alternative is the Anaconda Distribution, where many of
the most used Python packages are included.
Anaconda:
https://www.anaconda.com/distributi
on/
4.6 Plotting in Python
Typically you need to create some plots or charts. In order to make
plots or charts in Python you will need an external library. The
most used library is Matplotlib.
Matplotlib is a Python 2D plotting library
Here you find an overview of the Matplotlib library:
https://matplotlib.org
If you are familiar with MATLAB and basic plotting in MATLAB,
using the Matplotlib is very similar.
The main difference from MATLAB is that you need to import the
library, either the whole library or one or more functions.
59
For simplicity we import the whole library like this:
1 import m a tp l o tl i b . pyplot as plt
60
Plotting functions that you will use a lot:
• plot()
• title()
• xlabel()
• ylabel()
• axis()
• grid()
• subplot()
• legend()
• show()
Lets create some basic plotting examples using the Matplotlib library:
Example 4.6.1. Plotting in Python
In this example we have to arrays with data. We want to plot x
vs. y. We can assume x is a time series and y is the corresponding
temperature i degrees Celsius.
1 import m a tp l o t l i b . pyplot as plt
2
3 x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
4
5 y = [5, 2,4, 4, 8, 7, 4, 8 , 10 , 9]
6
7 plt . plot(x,y)
8 plt. x l a b e l ( ’ Time ( s ) ’ )
9 plt. y l a b e l ( ’ Temperature (
10 degC ) ’ ) p l t . show ( )
We get the following
plot: We can also write
like this:
1 from m a tp l o t l i b . pyplot import ∗
2
3 x = [1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
4 y = [5, 2 , 4 , 4 , 8 , 7 , 4 , 8 , 10 , 9 ]
5
6 plot (x ,y)
7 x l a b e l ( ’ Time ( s ) ’ )
8 y l a b e l ( ’ Temperature ( degC
9 ) ’ ) show ( )
This makes the code simpler to read. one problem with this
approach appears assuming we import and use multiple libraries
and the different libraries have some functions with the same name
but different use.
61
Figure 4.3: Plotting in Python
[End of Example]
We have used 4 basic plotting function in the Matplotlib library:
• plot()
• xlabel()
• ylabel()
• show()
Example 4.6.2. Plotting a Sine Curve
1 import numpy as np
2 import m a tp l o t l i b . pyplot
3
4 as p l t x = [ 0 , 1 , 2 , 3 , 4 ,
5
6 5, 6, 7]
7
8 y = np . s i n ( x )
9
10 plt .plot(x, y)
11 plt.xlabel( ’x’)
This gives the following plot (see
Figure 4.4): A better solution will then
be:
62
Figure 4.4: Plotting a Sine function in Python
1 import m a tp l o t l i b . pyplot as plt
2 import numpy as np
3
4 xstart = 0
5 xstop = 2∗ np .
6
p i incre me nt
= 0.1
7
8
9
x = np . arange ( xs ta r t , xstop ,
10
11
i ncre me nt ) y = np . s i n ( x )
12
13
plt .plot(x, y)
14 plt.xlabel( ’x’)
15 plt .ylabel(
’ y ’ ) p l t . show
This gives the following plot (see Figure 4.5):
If you want grids you can use the grid() function.
[End of Example]
4.6.1 Subplots
The subplot command enables you to display multiple plots in the
same window. Typing ”subplot(m,n,p)” partitions the figure
window into an m-by-n matrix of small subplots and selects the
subplot for the current plot. The plots are numbered along the first
row of the figure window, then the second row, and so on. See
Figure 4.6.
Example 4.6.3. Creating Subplots
63
Figure 4.5: Plotting a Sine function in Python - Better Implementation
We will create and plot sin() and cos() in 2 different subplots.
1 import m a tp l o t l i b . pyplot as plt
2 import numpy as np
3
4 xstart = 0
5 xstop = 2∗ np .
6
p i incre me nt
= 0.1
7
8
9
x = np . arange ( xs ta r t , xstop , i ncre me nt )
10
11
y = np . s i n ( x )
12
13
z = np . cos ( x )
14
15
16 p l t . s u bp l o t (
17 2,1,1)plt.plot
18 (x, y, ’g’)
19 plt. title( ’sin ’)
20 plt.xlabel( ’x’)
21 plt.ylabel(’sin
22 (x)’)plt .grid()
23 p l t . show ( )
24
25
26 p l t . s u bp l o t (
27 2,1,2)plt.plot
28 (x, z, ’r’)
29 p l t . t i t l e ( ’ cos ’ )
30 plt.xlabel( ’x’)
p l t . y l a b e l ( ’ cos (
[End of Example]
64
Figure 4.6: Creating Subplots in Python
4.6.2 Exercises
Below you find different self-paced Exercises that you should go
through and solve on your own. The only way to learn Python is to
do lots of Exercises!
Exercise 4.6.1. Create sin(x) and cos(x) in 2
different plots Create sin(x) and cos(x) in 2 different
plots.
You should use all the Plotting functions listed below in your code:
• plot()
• title()
• xlabel()
• ylabel()
• axis()
• grid()
• legend()
• show()
[End of Exercise]
65
Part II
Python Programming
66
Chapter 5
Python Programming
We have been through the basics in Python, such as variables,
using some basic built-in functions, basic plotting, etc.
You may come far only using these thins, but to create real
applications, you need to know about and use features like:
• If ... Else
• For Loops
• While Loops
• Arrays ...
If you are familiar with one or more other programming language,
these fea- tures should be familiar and known to you. All
programming languages has these features built-in, but the syntax
is slightly different from one language to another.
5.1 If ... Else
An ”if statement” is written by using the if keyword.
Here are some Examples how you use a If sentences in Python:
Example 5.1.1. Using For Loops in Python
1 a = 5
2 b = 8
3
4 if a > b:
5 print(”a is g r e a t e r than b” )
6
7 if b > a:
8 p r i n t ( ”b is greater than a” )
9
10 if a == b :
11 print(”a is equal to b” )
Listing 5.1: Using Arrays in Python
67
Try to change the values for a and b.
Using If -
Else:
1 a = 5
2 b = 8
3
4 if a > b:
5 print(”a is greater
6 than b” ) e l s e :
7 p r i n t ( ”b i s g r e a t e r than a or a and b are equal ” )
Listing 5.2: Using Arrays in Python
Using
Elif :
1 a =
2 5
3 b =
4 if a > b:
5 print(”a greater than
6 iselif b > a: b” )
7 p r i n t ( ”b greater than
8 i s e l i f a == a” )
9 b:
print(”a Listing
equal to 5.3:
b” ) Using Arrays in Python
Note! Python uses ”elif” not ”elseif” like many other programming
languages do.
[End of Example]
5.2 Arrays
An array is a special variable, which can hold more than one value
at a time. Here are some Examples how you can create and use
Arrays in Python:
Example 5.2.1. Using For Loops in Python
1 data = [ 1 . 6 , 3.4, 5.5, 9.4]
2
3 N = len(
4
5 data ) p r i n t
6
7 (N)
8
9 p r i n t ( data [ 2 ] )
10
11 data [ 2 ] = 7 . 3
12
13 p r i n t ( data [ 2 ] )
68
14
15
69
16
17
18 data . append ( 1 1 . 4 )
19
20
21 N = len(
22
23 data ) p r i n t
24
25 (N)
26
27
Listing 5.4: Using Arrays in Python
You define an array like this:
1 data = [ 1 . 6 , 3.4, 5.5, 9.4]
You can also use text like this:
1 c a r l i s t = [ ” Volvo ” , ” Tesla ” , ” Ford” ]
You can use Arrays in Loops like this:
1 f o r x i n data :
2 print(x)
You can return the number of elements in the array like this:
1 N = l e n ( data )
You can get a specific value inside the array like this:
1 index = 2
2 x = c a r s [ index ]
You can use the append() method to add an element to an array:
1 data . append ( 1 1 . 4 )
[End of Example]
You have many built in methods you can use in combination with
arrays, like sort(), clear(), copy(), count(), insert(), remove(), etc.
You should look test all these methods.
70
5.3 For Loops
A For loop is used for iterating over a sequence. I guess all your
programs will use one or more For loops. So if you have not used
For loops before, make sure to learn it now.
Below you see a basic example how you can use a For loop in Python:
1 f o r i i n range ( 1 , 10 ) :
2 print(i)
The For loop is probably one of the most useful feature in Python
(or in any kind of programming language). Below you will see
different examples how you can use a For loop in Python.
Example 5.3.1. Using For Loops in Python
1 data = [ 1 . 6 , 3.4, 5.5, 9.4]
2
3 for x in
4 data : p r i n
5 t(x)
6
7
8 c a r l i s t = [ ” Volvo ” , ” Tesla ” ,
9
10 ” Ford” ] f o r car i n c a r l i s t :
p r i n t ( car )
Listing 5.5: Using For Loops in Python
The range() function is handy yo use in For Loops:
1 N = 10
2
3 f o r x i n range
4 (N) : p r i n t ( x )
The range() function returns a sequence of numbers, starting from 0
by default, and increments by 1 (by default), and ends at a specified
number.
You can also use the range() function like this:
1 start = 4
2 stop= 12 #but not including
3
4 f o r x i n range ( s ta r t ,
5 stop ) : p r i n t ( x )
Finally, you can also use the range() function like this:
1 start = 4
2 stop = 12 #but not inclu
3 d i n g s te p = 2
4
5 f o r x i n range ( s ta r t , stop ,
6 s te p ) : p r i n t ( x )
71
You should try all these examples in order to learn the basic
structure of a For loop.
[End of Example]
Example 5.3.2. Using For Loops for Summation of Data
You typically want to use a For loop for find the sum of a given data set.
1 data = [ 1 , 5, 6, 3, 12 , 3]
2
3 sum = 0
4
5 #Find the Sum o f all the numbers
6 f o r x i n data :
7 sum = sum + x
8
9 p r i n t ( sum)
10
11 #Find the Mean or Average of all the numbers
12
13 N = l e n ( data )
14
15 mean = sum/N
16
17 p r i n t ( mean )
This gives the following results:
1 30
2 5.0
[End of Example]
Example 5.3.3. Implementing Fibonacci Numbers Using a For Loop in Python
Fibonacci numbers are used in the analysis of financial markets, in
strategies such as Fibonacci retracement, and are used in computer
algorithms such as the Fibonacci search technique and the
Fibonacci heap data structure.
They also appear in biological settings, such as branching in trees,
arrangement of leaves on a stem, the fruitlets of a pineapple, the
flowering of artichoke, an uncurling fern and the arrangement of a
pine cone.
In mathematics, Fibonacci numbers are the numbers in the
following sequence: 0, 1, 1, 2 ,3, 5, 8, 13, 21, 34, 55, 89, 144, . . .
By definition, the first two Fibonacci numbers are 0 and 1, and
each subsequent number is the sum of the previous two.
Some sources omit the initial 0, instead beginning the sequence with two 1s.
72
In mathematical terms, the sequence Fn of Fibonacci numbers is
defined by the recurrence relation
fn = fn−1 + fn−2 (5.1)
with seed values:
f0 = 0, f1 = 1
We will write a Python script that calculates the N first Fibonacci
numbers. The Python Script becomes like this:
1 N = 10
2
3 fib1 = 0
4 fib2 = 1
5
6 print(fi
7 b1)print
8 (fib2)
9
10 for k i n range (N−2) :
11 f i b n e x t = f i b 2 +f i b 1
12 f ib1 = fib2
13 f ib2 = fib n
Listing 5.6: Fibonacci Numbers Using a For Loop in Python
Alternative solution:
1 N = 10
2
3 fib = [0, 1]
4
5
6 f o r k i n range (N−2) :
7 fib next = f i b [ k+1] +f i b [ k ]
8 f i b . append ( f i b n e x t )
9
10 print(fib)
Listing 5.7: Fibonacci Numbers Using a For Loop in Python - Alt2
Another alternative solution:
1 N = 10
2
3 fib = []
4
5 f o r k i n range
6 (N) : f i b .
7 append ( 0 )
8
9 fib [0] = 0
10 fib [1] = 1
73
11 f o r k i n range (N−2) :
12 f i b [ k+2] = f i b [ k+1] +f i b [ k ]
13
14
15 print(fib)
Listing 5.8: Fibonacci Numbers Using a For Loop in Python - Alt3
Another alternative solution:
1 import numpy as np
2
3
4 N = 10
5
6 f i b = np . z e r o
7
8 s (N) f i b [ 0 ] =
9
10 0
11 fib [1] = 1
12
13 f o r k i n range (N−2) :
14 f i b [ k+2] = f i b [ k+1] +f i b [ k ]
15
Listing 5.9: Fibonacci Numbers Using a For Loop in Python - Alt4
[End of Example]
5.3.1 Nested For Loops
In Python and other programming languages you can use one loop
inside an- other loop.
Syntax for nested For loops in Python:
1 f o r i t e r a t i n g v a r i n sequence :
2 for iterating var in
3 sequence : s t a t e m e n t s ( s )
4 statements ( s )
Simple example:
1 for i i n range ( 1 , 10 ) :
2 f o r k i n range ( 1 ,
3 10 ) : p r i n t ( i , k
)
Exercise 5.3.1. Prime Numbers
The first 25 prime numbers (all the prime numbers less than 100) are:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
89, 97
74
By definition a prime number has both 1 and itself as a divisor. If it
has any other divisor, it cannot be prime.
A natural number (1, 2, 3, 4, 5, 6, etc.) is called a prime number
(or a prime) if it is greater than 1 and cannot be written as a
product of two natural numbers that are both smaller than it.
Create a Python Script where you find all prime numbers between 1 and 200.
Tip! I guess this can be done in many different ways, but one way
is to use 2 nested For Loops.
[End of Exercise]
5.4 While Loops
The while loop repeats a group of statements an indefinite number
of times under control of a logical condition.
Example 5.4.1. Using While Loops in Python
1 m = 8
2
3 wh i l e m >
2
4 : print
5 m(m)= m −
1
Listing 5.10: Using While Loops in Python
[End of Example]
5.5 Exercises
Below you find different self-paced Exercises that you should go
through and solve on your own. The only way to learn Python is to
do lots of Exercises!
Exercise 5.5.1. Plot of Dynamic System
Given the autonomous
x˙ = ax (5.2)
system: Where:
1
a=−
T
75
where T is the time constant.
The solution for the differential equation is:
x(t) = eatx0 (5.3)
Set T=5 and the initial condition x(0)=1.
Create a Script in Python (.py file) where you plot the solution x(t) in
the time interval:
0 ≤ t ≤ 25
Add Grid, and proper Title and Axis Labels to the plot.
[End of Exercise]
76
Chapter 6
Creating Functions in
Python
6.1 Introduction
A function is a block of code which only runs when it is called. You
can pass data, known as parameters, into a function. A function
can return data as a result.
Previously we have been using many of the built-in functions in Python
If you are familiar with one or more other programming language,
creating and using functions should be familiar and known to you.
All programming lan- guages has the possibility to create
functions, but the syntax is slightly different from one language to
another.
Some programming languages uses the term Method instead of a
Function. Functions and Methods behave in the same manner, but
you could say that Methods are functions that belongs to a Class.
We will learn more about Classes in Chapter 7.
Scripts vs. Functions
It is important to know the difference between a Script and a
Function. Scripts:
• A collection of commands that you would execute in the Editor
• Used for automating repetitive
tasks Functions:
• Operate on information (inputs) fed into them and return outputs
• Have a separate workspace and internal variables that is only
77
valid inside the function
78
• Your own user-defined functions work the same way as the built-
in func- tions you use all the time, such as plot(), rand(),
mean(), std(), etc.
Python have lots of built-in functions, but very often we need to
create our own functions (we could refer to these functions as user-
defined functions)
In Python a function is defined using the def keyword:
1 def
2
FunctionName :
3 <statement −1>
4 .
5
.
6 <statement −N>
r e tu r n . . .
Example 6.1.1. Create a Function in a separate
File Below you see a simple function created in
d e f add ( x , y ) :
Python:
1 r e tu r n x + y
2
3
Listing 6.1: Basic Python Function
The function adds 2 numbers. The name of the function is add, and
it returns the answer using the return statement.
The statement return [expression] exits a function, optionally
passing back an expression to the caller. A return statement with
no arguments is the same as return None.
Note that you need to use a colon ”:” at the end of line where you
define the function.
Note also the indention used.
1 d e f add ( x , y ) :
Here you see a Python script where we use the function:
1 d e f add ( x , y ) :
2
3 r e tu r n x + y
4
5
6 x = 2
7 y = 5
8
9 z = add ( x ,
10
11 y)print
79
Listing 6.2: Creating and Using a Python Function
80
[End of Example]
Example 6.1.2. Create a Function in a separate File
We start by creating a separate Python File (myfunctions.py) for the function:
1 def average ( x , y ) :
2
3 r e tu r n ( x + y ) /2
Listing 6.3: Function calculating the Average
Next, we create a new Python File (e.g., testaverage.py) where
we use the function we created:
1 from myfunctions import average
2
3 a = 2
4 b = 3
5
6 c = average ( a ,
7
8 b)print(c)
Listing 6.4: Test of Average function
[End of Example]
6.2 Functions with multiple return values
Typically we want to return more than one value from a function.
Example 6.2.1. Create a Function Function with multiple return
values Create the following example:
1 def stat(x):
2
3 totalsum = 0
4
5 #Find the Sum o f a l l the
6 numbers f o r x i n data :
7 totalsum = totalsum + x
8
9
10 #Find the Mean or Average of a l l the
11
12 numbers N = l e n ( data )
13
14 mean = totalsum /N
15
16
17 r e tu r n totalsum , mean
18
19
20
81
21 data = [ 1 , 5, 6, 3, 12 , 3]
22
23
24 totalsum , mean = s t a t (
25
26 data ) p r i n t ( totalsum ,
mean )
Listing 6.5: Function with multiple return values
[End of Example]
6.3 Exercises
Below you find different self-paced Exercises that you should go
through and solve on your own. The only way to learn Python is to
do lots of Exercises!
Exercise 6.3.1. Create Python Function
Create a function calcaverage that finds the average of two numbers.
[End of Exercise]
Exercise 6.3.2. Create Python functions for converting between
radians and degrees
Since most of the trigonometric functions require that the angle is
expressed in radians, we will create our own functions in order to
convert between radians and degrees.
It is quite easy to convert from radians to degrees or from degrees
to radians. We have that:
2π[radians] = 360[degrees] (6.1)
This
gives:
180
d[degrees] = ) (6.2)
r[radians] × ( π
and
π
r[radians] = d[degrees] × (
) (6.3)
180
Create two functions that convert from radians to degrees (r2d(x))
and from degrees to radians (d2r(x)) respectively.
These functions should be saved in one Python file .py.
82
Test the functions to make sure that they work as expected.
83
[End of Exercise]
Exercise 6.3.3. Create a Function that Implementing Fibonacci Numbers
Fibonacci numbers are used in the analysis of financial markets, in
strategies such as Fibonacci retracement, and are used in computer
algorithms such as the Fibonacci search technique and the
Fibonacci heap data structure.
They also appear in biological settings, such as branching in trees,
arrangement of leaves on a stem, the fruitlets of a pineapple, the
flowering of artichoke, an uncurling fern and the arrangement of a
pine cone.
In mathematics, Fibonacci numbers are the numbers in the
following sequence: 0, 1, 1, 2 ,3, 5, 8, 13, 21, 34, 55, 89, 144, . . .
By definition, the first two Fibonacci numbers are 0 and 1, and
each subsequent number is the sum of the previous two.
Some sources omit the initial 0, instead beginning the sequence with two 1s.
In mathematical terms, the sequence Fn of Fibonacci numbers is
defined by the recurrence relation
fn = fn−1 + fn−2 (6.4)
with seed values:
f0 = 0, f1 = 1
Create a Function that Implementing the N first Fibonacci Numbers
[End of Exercise]
Exercise 6.3.4. Prime Numbers
The first 25 prime numbers (all the prime numbers less than 100) are:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
89, 97
By definition a prime number has both 1 and itself as a divisor. If it
has any other divisor, it cannot be prime.
A natural number (1, 2, 3, 4, 5, 6, etc.) is called a prime number
(or a prime) if it is greater than 1 and cannot be written as a
product of two natural numbers that are both smaller than it.
84
Tip! I guess this can be implemented in many different ways, but
one way is to use 2 nested For Loops.
85
Create a Python function where you check if a given number is a
prime number or not.
You can check the function in the Command Window like this:
1 number = 4
2 c h e c k i f p r i m e ( number )
Then Python respond with True or False.
[End of Exercise]
86
Chapter 7
Creating Classes in Python
7.1 Introduction
Python is an object oriented programming (OOP) language. Almost
everything in Python is an object, with its properties and methods.
The foundation for all object oriented programming (OOP) languages
are Classes. To create a class, use the keyword class:
1 c l a s s ClassName :
2 <statement −1>
3 .
4 .
5 .
6 <statement −N>
Example 7.1.1. Simple Class
Example We will create a simple
Class in Python.
1 c l a s s Car :
2 model = ”
3 Volvo ” c o l o r
4 = ” Blue ”
5
6
7 car = Car ( )
8
9
10 p r i n t ( car .
Listing 7.1: Simple Python Class
The results will be in this case:
1 Volvo
Blue 87
2
88
This example don’t illustrate the good things with classes so we
will create some more examples.
[End of Example]
Example 7.1.2. Python Class
Lets create the following Python Code:
1 c l a s s Car :
2 model =
3 ”” c o l o r
4 = ””
5
6 car = Car ( )
7
8 car . model = ”
9 Volvo ” car . c o l o
10 r = ” Blue ”
11
12 p r i n t ( car . c o l o r + ” ” + car .
13
14 model ) car . model = ” Ford”
15 car . c o l o r = ” Green”
Listing 7.2: Python Class example
You should try these examples.
[End of Example]
7.2 The init () Function
In Python all classes have a built-in function called init (), which
is always executed when the class is being initiated.
In many other OOP languages we call this the Constructor.
Exercise 7.2.1. The init () Function
We will create a simple example where we use the init () function
to illustrate the principle.
We change our previous Car example like this:
1 c l a s s Car :
2 d e f i n i t ( s e l f , model , c o l
3 o r ) : s e l f . model = model
4 self . color = color
5
6 car 1 = Car ( ” Ford” , ”
7
8 Green” ) p r i n t ( car 1 .
9
10 model )
11 p r i n t ( car 1 . c o l o r )
89
12 car 2 = Car ( ” Volvo ” , ” Blue ” )
13
14 p r i n t ( car 2 .
15 model ) p r i n t (
car 2 . c o l o r )
Listing 7.3: Python Class Constructor Example
Lets extend the Class by defining a Function as well:
1 # De f i n i n g the Clas
s Car
3 c l a d
2 s se f Cari n: i t ( s e l f , model , c o l
or):
4 s e l f . model = model
5 self.color = color
6
7 d e f di s play Car ( s e l f ) :
8 p r i n t ( s e l f . model )
9
10 print(self .color)
11
12# Lets start us i n g the
Clas s
13
14car 1 = Car ( ” Tesla ” ,
”Red” )
15
16 car 1 . di s play Car ( )
17
18
19car 2 = Car ( ” Ford” , ”
Green” )
20
21 p r i n t ( car 2 . model )
22 p r i n t ( car 2 . c o l o r )
23
24
25car 3 = Car ( ” Volvo ” , ”
Blue ” )
26
27 p r i n t ( car 3 . model )
28 p r i n t ( car 3 . c o l o r )
Listing 7.4: Python Class with Function
As you see from the code we have now defined a Class ”Car” that
has 2 Class variables called ”model” and ”color”, and in addition
we have defined a Func- tion (or Method) called ”displayCar()”.
Its normal to use the term ”Method” for Functions that are defined
within a Class.
You declare class methods like normal functions with the exception
that the first argument to each method is self.
To create instances of a class, you call the class using class name
and pass in whatever arguments its init () method accepts.
For example:
90
1 car 1 = Car ( ” Tesla ” , ”Red” )
[End of Example]
Exercise 7.2.2. Create the Class in a separate Python file
We start by creating the Class and then we save the code in ”Car.py”:
1 # De f i n i n g the Clas
s Car
3 c l a d
2 s se f Cari n: i t ( s e l f , model , c o l
or):
4 s e l f . model = model
5
6 self.color = color
7 d e f di s play Car ( s
elf):
8 print(self .
model )
Listing 7.5: Define Python Class in separate File
Then we create a Python Script (testCar.py) where we are using the Class:
1 # Importing the Car Clas s
2 from Car import Car
3
4 # Lets start us i n g the Clas s
5
6 car 1 = Car ( ” Tesla ” , ”Red” )
7
8 car 1 . di s play Car ( )
9
10
11 car 2 = Car ( ” Ford” , ” Green” )
12
13 p r i n t ( car 2 . model )
14 p r i n t ( car 2 . c o l o r )
15
16
17 car 3 = Car ( ” Volvo ” , ” Blue ” )
18
19 p r i n t ( car 3 . model )
20 p r i n t ( car 3 . c o l o r )
21
22 car 3 . c o l o r=” Black ”
23
24 car 3 . di s play Car ( )
Listing 7.6: Script that is using the Class
Notice the following line at the top:
1 from Car import Car
[language=Python]
[End of Example]
91
7.3 Exercises
Below you find different self-paced Exercises that you should go
through and solve on your own. The only way to learn Python is to
do lots of Exercises!
Exercise 7.3.1. Create Python Class
Create a Python Class where you calculate the degrees in
Fahrenheit based on the temperature in Celsius and vice versa.
The formula for converting from Celsius to Fahrenheit is:
Tf = (Tc × 9/5) + 32 (7.1)
The formula for converting from Fahrenheit to Celsius is:
Tc = (Tf − 32) × (5/9) (7.2)
[End of Exercise]
92
Chapter 8
Creating Python Modules
As your program gets longer, you may want to split it into several
files for easier maintenance. You may also want to use a handy
function that you have written in several programs without copying
its definition into each program.
To support this, Python has a way to put definitions in a file and
use them in a script or in an interactive instance of the interpreter
(the Python Console window).
8.1 Python Modules
A module is a file containing Python definitions and statements.
The file name is the module name with the suffix .py appended.
Python allows you to split your program into modules that can be
reused in other Python programs. It comes with a large collection
of standard modules that you can use as the basis of your
programs as we have seen examples of in previous chapters. Not it
is time to make your own modules from scratch.
Consider a module to be the same as a code library. A file
containing a set of functions you want to include in your
application.
Previously you have been using different modules, libraries or
packages created by the Python organization or by others. Here
you will create your own modules from scratch.
Example 8.1.1. Create your first Python Module
We will create a Python module with 2 functions. The first function
should convert from Celsius to Fahrenheit and the other function
should convert from Fahrenheit to Celsius.
93
The formula for converting from Celsius to Fahrenheit is:
Tf = (Tc × 9/5) + 32 (8.1)
94
The formula for converting from Fahrenheit to Celsius is:
Tc = (Tf − 32) × (5/9) (8.2)
First, we create a Python module with the following functions
(fahrenheit.py):
1 def c 2 f ( Tc) :
2
3 Tf = ( Tc ∗ 9 / 5 ) + 32
4 r e tu r n Tf
5
6
7 def f 2 c ( Tf ) :
8
9 Tc = ( Tf − 32 ) ∗ ( 5 / 9 )
10 r e tu r n Tc
Listing 8.1: Fahrenheit Functions
Then, we create a Python script for testing the functions
(testfahrenheit.py):
1 from f a h r e n h e i t import c 2 f , f2c
2
3 Tc = 0
4
5 Tf = c 2 f ( Tc)
6
7 p r i n t ( ” F a hre nhe i t : ” + s t r ( Tf ) )
8
9
10 Tf = 32
11
12 Tc = f 2 c ( Tf )
13
14
print(”Celsius : ” + s t r ( Tc) )
Listing 8.2: Python Script testing the functions
The results becomes:
1 F ahre nhe i t : 3 2 . 0
2 Celsius: 0.0
8.2 Exercises
Below you find different self-paced Exercises that you should go
through and solve on your own. The only way to learn Python is to
do lots of Exercises!
Exercise 8.2.1. Create Python Module for converting between
radians and degrees
Since most of the trigonometric functions require that the angle is
95
expressed in radians, we will create our own functions in order to
convert between radians
96
and degrees.
It is quite easy to convert from radians to degrees or from degrees
to radians. We have that:
2π[radians] = 360[degrees] (8.3)
This
gives:
180
d[degrees] = ) (8.4)
r[radians] × ( π
and
π
r[radians] = d[degrees] × ( ) (8.5)
180
Create two functions that convert from radians to degrees (r2d(x))
and from degrees to radians (d2r(x)) respectively.
These functions should be saved in one Python file .py.
Test the functions to make sure that they work as expected. You can
choose to make a new .py file to test these functions or you can use
the Console window.
[End of Exercise]
97
Chapter 9
File Handling in Python
9.1 Introduction
Python has several functions for creating, reading, updating, and
deleting files. The key function for working with files in Python is
the open() function.
The open() function takes two parameters; Filename, and
Mode. There are four different methods (modes) for
opening a file:
• ”x” - Create - Creates the specified file, returns an error if the file exists
• ”w” - Write - Opens a file for writing, creates the file if it does not exist
• ”r” - Read - Default value. Opens a file for reading, error if the
file does not exist
• ”a” - Append - Opens a file for appending, creates the file if it
does not exist
In addition you can specify if the file should be handled as binary or text mode
• ”t” - Text - Default value. Text mode
• ”b” - Binary - Binary mode (e.g. images)
9.2 Write Data to a File
To create a New file in Python, use the open() method, with one of
the following parameters:
• ”x” - Create - Creates the specified file, returns an error if the file exists
• ”w” - Write - Opens a file for writing, creates the file if it does not exist
98
”a” - Append - Opens a file for appending, creates the file if it
• does not exist
99
To write to an Existing file, you must add a parameter to the open() function:
• ”w” - Write - Opens a file for writing, creates the file if it does not exist
• ”a” - Append - Opens a file for appending, creates the file if it
does not exist
Example 9.2.1. Write Data to a File
1 f = open ( ” m y f i l e . txt ” , ”x” )
2
3 data = ” Helo
4
5 World” f . w r i te (
6
7 data )
Listing 9.1: Write Data to a File
[End of Example]
9.3 Read Data from a File
To read to an existing file, you must add the following parameter to
the open() function:
• ”r” - Read - Default value. Opens a file for reading, error if the
file does not exist
Example 9.3.1. Read Data from a File
1 f = open ( ” m y f i l e . txt ” , ” r ” )
2
3 data = f . read
4
5 () print(
6
7 data )
Listing 9.2: Read Data from a File
[End of Example]
9.4 Logging Data to File
Typically you want to write multiple data to the, e.g., assume you
read some temperature data at regular intervals and then you want
to save the temperature values to a File.
Example 9.4.1. Logging Data to File
100
1 data = [ 1 . 6 , 3.4, 5.5, 9.4]
2
3 f = open ( ” m y f i l e . txt ”
4
5 , ”x” ) f o r value i n data
6
7 :
8 record = str(
9 value ) f . w r i te ( r
10 ecord)
f . w r i te ( ” \n” )Listing 9.3: Logging Data to File
[End of Example]
Example 9.4.2. Read Logged Data from File
1 f = open ( ” m y f i l e . txt ” , ” r ” )
2
3 for record in f :
4 record = record.replace(
5
” \n” , ”” ) p r i n t ( r e c o r d )
6
7
f. close()
Listing 9.4: Read Logged Data from File
[End of Example]
9.5 Web Resources
Below you find different useful resources for File Handling.
Python File Handling - w3school:
https://www.w3schools.com/python/pythonf
ilehandling.asp
Reading and Writing Files - python.org:
https://docs.python.org/3/tutorial/inputoutput.htmlreading-and-
writing-files
9.6 Exercises
Below you find different self-paced Exercises that you should go
through and solve on your own. The only way to learn Python is to
do lots of Exercises!
Exercise 9.6.1. Data Logging
Assume you have the following data you want to log to a File as
shown in Table 9.1.
101
Log these data to a File.
Create another Python Script that reads the same data.
102
[End of Exercise]
Exercise 9.6.2. Data Logging 2
Assume you read data from a Temperature sensor every 10 seconds
for a period of let say 5 minutes.
Log the data to a File.
You can use the Random Generator in Python. An example of how to
use the Random Generator is shown below:
1 import random
2 f o r x i n range ( 10 ) :
3 data = random . r an d i n t (
4 1 , 3 1 ) p r i n t ( data )
Listing 9.5: Read Data from a File
Make sure to log both the time and the
temperature value Create another Python Script
that reads the same data. You should also plot the
data you read from the File.
[End of Exercise]
103
Table 9.1: Logged Data
Time Value
1 22
2 25
3 28
... ...
104
Chapter 10
Error Handling in Python
10.1 Introduction to Error Handling
So far error messages haven’t been discussed. You could say that
we have 2 kinds of errors: syntax errors and exceptions.
10.1.1 Syntax Errors
Below we see an example of syntax errors:
1 >>> p r i n t ( H e l l o World )
2 F i l e ”<ipython −input −1−10cb182148 e 3 >” , line 1
3 p r i n t ( H e l l o World )
4 ˆ
5 Syntax Error : i n v a l i d syntax
In the example we have written print(Hello World) instead of
print(”Hello World”) and then the Python Interpreter gives us an
error message.
10.1.2 Exceptions
Even if a statement or expression is syntactically correct, it may
cause an error when an attempt is made to execute it. Errors
detected during execution are called exceptions and are not
unconditionally fatal: you will soon learn how to handle them in
Python programs. Most exceptions are not handled by programs,
however, and result in error messages as shown here:
1 >>> 10 ∗ ( 1 / 0 )
2 Traceback ( most r e c e n t call last):
3
4 F i l e ”<ipython −input −2−0b 280 f 36835 c >” , l i n e 1 , i n
<module>
5 10 ∗ ( 1 / 0 )
6
or:
1 >>> ’ 2 ’ + 2
2 Traceback ( most r e c e n t call last):
3
105
4 F i l e ”<ipython −input −3−d2b23a1db757>” , line 1, in
5 <module>
6 ’2’ + 2
7
TypeError : must be s tr , not int
10.2 Exceptions Handling
It is possible to write programs that handle selected exceptions.
In Python we can use the following built-in Exceptions Handling features:
• The try block lets you test a block of code for errors.
• The except block lets you handle the error.
• The finally block lets you execute code, regardless of the result
of the try- and except blocks.
When an error occurs, or exception as we call it, Python will
normally stop and generate an error message.
These exceptions can be handled using the try - except
statements. Some basic example:
1 tr y :
2 10 ∗ ( 1 / 0 )
3 except :
4 p r i n t ( ”The c a l c u l a t i o n failed”)
or:
1 tr y :
2 print(
3 x ) except :
4 p r i n t ( ”x is not defined”)
You can also use multiple exceptions:
1 tr y :
2 print(x)
3 except NameError :
4 p r i n t ( ”x i s not d e f i n e d
5 ” ) except :
6 p r i n t ( ” Something i s wrong” )
The finally block, if specified, will be executed regardless if the try
block raises an error or not.
Example:
106
1 x=2
2
3 tr y :
4 print(x)
5 except NameError :
6 p r i n t ( ”x i s not d e f i n e d
7 ” ) except :
8 p r i n t ( ” Something i s
9 wrong” ) f i n a l l y :
10 p r i n t ( ”The Program i s f i n i s h e d ” )
In general you should use try - except - finally when you try to open
a File, read or write to Files, connect to a Database, etc.
Example:
1 tr y :
2 f = open ( ” m y f i l e .
3 txt ” ) f . w r i te (
4 ”Lorum Ipsum” )
5 except :
6 p r i n t ( ” Something went wrong when w r i t i n g to
7 the f i l e ” ) f i n a l l y :
f. close()
107
Chapter 11
Debugging in Python
Debugging is the process of finding and resolving defects or
problems within a computer program that prevent correct
operation of computer software or a system [14].
Debuggers are software tools which enable the programmer to
monitor the ex- ecution of a program, stop it, restart it, set
breakpoints, and change values in memory. The term debugger
can also refer to the person who is doing the de- bugging.
As a programmer, one of the first things that you need for serious
program development is a debugger.
Python has a built-in debugger that can be used if you are coding
Python with a basic text editor and running your Python programs
from the command line.
A better option is to use the Debugging features integrated in your
Python Ed- itor. Debugging is typically integrated with the Python
Editor you are using.
See the specific chapter for the different Python Editors.
108
Chapter 12
Installing and using
Python Packages
A package contains all the files you need for a module. Modules
are Python code libraries you can include in your project.
Since Python is open source you can find thousands of Python
Packages that you can install and use in your Python programs.
You can use a Python Distribution like Anaconda Distribution (or
similar Python Distributions) to download and install many
common Python Pack- ages as mentioned previously.
12.1 What is PIP?
PIP is a package manager for Python packages, or modules if you
like. PIP is a tool for installing Python packages.
If you do not have PIP installed, you can download and install it
from this page: https://pypi.org/project/pip/
PIP is typically used from the Command Prompt (Windows) or
Terminal win- dow (macOS).
Installing Python Packages:
1 pip install packagename
Uninstalling Python Packages:
1 pip u n i n s t a l l packagename
Some Python Editors also have a graphical way of installing Python
Packages, like, e.g., Visual Studio.
109
Part III
Python Environments and
Distributions
110
Chapter 13
Introduction to
Python
Environments and
Distributions
Python comes with many flavours and version.
Python is open source and everybody can bundle and distribute
Python and different Python Packages.
A Python environment is a context in which you run Python code
and includes Python Packages.
An environment consists of an interpreter, a library (typically the
Python Stan- dard Library), and a set of installed packages.
These components together determine which language constructs
and syntax are valid, what operating-system functionality you can
access, and which pack- ages you can use.
You can have multiple Python Environments on your
Computer. Some of them are:
• CPython distribution available from python.org
• Anaconda
• Enthought Canopy
• WinPython
• etc.
It is easy to start using Python by installing one of these Python Distributions.
111
But you can also install the core Python from:
https://www.python.org
Then install the additional Python Packages you need by using PIP.
https://pypi.org/project/pip/
13.1 Package and Environment Managers
The two most popular tools for installing Python Packages and
setting up Python environments are:
• PIP - a Python Package Manager
• Conda - a Package and Environment Manager (for Python and
other lan- guages)
13.1.1 PIP
Web:
https://pypi.org
PIP is typically used from the Command Prompt (Windows) or
Terminal win- dow (macOS).
Installing Python Packages:
1 pip install packagename
Uninstalling Python Packages:
1 pip u n i n s t a l l packagename
13.1.2 Conda
Conda is an open source package management system and
environment man- agement system that runs on Windows, macOS
and Linux. Conda installs, runs and updates packages and their
dependencies.
The Conda package and environment manager is included in all
versions of Ana- conda.
Conda was created for Python programs, but it can package and
distribute soft- ware for any language.
Conda allows you to to also create separate environments
containing files, pack- ages and their dependencies that will not
interact with other environments.
112
Web:
https://conda.io/
Conda is part of or integrated with the Anaconda Python
Distribution. Web:
https://www.anaconda.com
13.2 Python Virtual Environments
Python ”Virtual Environments” allow Python packages to be
installed in an isolated location for a particular application, rather
than being installed glob- ally.
You can have multiple Python Environments on your computer.
Python Virtual Environments have their own installation
directories and they don’t share libraries with other virtual
environments.
Python ”Virtual Environments” is handy when you have different
Python appli- cations that needs different versions of Python or
different version of the Python Packages you are using.
113
Chapter 14
Anaconda
Anaconda is not an Editor, but a Python Distribution package.
Spyder is in- cluded in the Python Distribution package. You can
also use Anaconda to install other Editors or Python packages.
It is available for Windows, macOS and
Linux. Web:
https://www.anaconda.com
Wikipedia:
https://en.wikipedia.org/wiki/Anaconda(Pythondistributi
on)
14.1 Anaconda Navigator
Anaconda Navigator is a desktop graphical user interface (GUI)
included in Anaconda distribution that allows users to launch
applications and manage Python packages. The Anaconda
Navigator can search for packages and install them on your
computer, run the packages and update them.
Figure 14.1 shows the Anaconda Navigator.
114
Figure 14.1: Anaconda Navigator
115
Chapter 15
Enthought Canopy
Enthought Canopy is a Python Platform or Python Distribution for
Scientists and Engineers.
It is available for Windows, macOS and Linux.
Canopy is freely available to all users under the Canopy license.
Canopy pro- vides access to several hundreds Python packages,
including NumPy, SciPy, Pandas, Matplotlib, and IPython.
In addition, we have the Canopy Python Editor.
Enthought Canopy is a competitor to the Anaconda Python
Distribution. It is a matter of taste who you prefer.
Web:
https://www.enthought.com/product/can
opy/
116
Part IV
Python Editors
117
Chapter 16
Python Editors
An Editor is a program where you create your code (and where you
can run and test it). Most Editors have also features for Debugging
and IntelliSense.
In theory, you can use Windows Notepad for creating Python
programs, but in practice it is impossible to create programs
without having an editor with Debugging, IntelliSense, color
formatting, etc.
For simple Python programs you can use the IDLE Editor, but for
more ad- vanced programs a better editor is recommended.
Examples of Python Editors:
• Spyder
• Visual Studio Code
• Visual Studio
• PyCharm
• Wing
• JupyterNotebook
We will give an overview of these Code Editors in the next chapters.
I guess hundreds of different editors can be used for Python
Programming, ei- ther out of the box or if you install an additional
Extension that makes sure you can use Python in that editor.
If you already have a favorite Code Editor, it is a good change you
can use that one for Python programming.
Which editor you should use depends on your background, what
kind of code editors you have used previously, your programming
skills, what your are going to develop in Python, etc.
118
If you are familiar with MATLAB, Spyder is recommended. Also, if
you want to use Python for numerical calculations and
computations, Spyder is a good choice.
If you want to create Web Applications or other kinds of
Applications, other Editors are probably better to use.
For a list of ”Best Python Editors”, see [15].
119
Chapter 17
Spyder
Spyder - short for ”Scientific PYthon Development EnviRonment”.
Spyder is an open source cross-platform integrated development
environment(IDE) for scientific programming in the Python language.
Figure 17.1: Spyder Editor
The Spyder editor consists of the following parts or windows:
• Code Editor window
• iPython Console window
120
• Variable Explorer
• etc
.
Web:
https://www.spyder-ide.org
If you have used MATLAB previously or want to use Python for
scientific use, Spyder is a good choice. it is easy to install using the
Anaconda Distribution.
Web:
https://www.anaconda.c
om
121
Chapter 18
Visual Studio Code
18.1 Introduction to Visual Studio Code
Visual Studio Code is a simple and easy to use editor that can be
used for many different programming languages.
Figure 18.1: Using Visual Studio Code as
Python Editor Right-Click and select ”Run Python File in
Terminal”
Web:
https://code.visualstudio.com
122
Wikipedia:
https://en.wikipedia.org/wiki/VisualStudioCode
123
18.2 Python in Visual Studio Code
In addition to Visual Studio Code you need to install the Python
extension for Visual Studio Code.
You must install a Python interpreter yourself separately from the
extension. For a quick install, use Python from python.org.
https://www.python.org
Python is an interpreted language, and in order to run Python code
and get Python IntelliSense within Visual Studio Code, you must
tell Visual Studio Code which interpreter to use.
Web:
https://code.visualstudio.com/docs/languages/pyt
hon
124
Chapter 19
Visual Studio
19.1 Introduction to Visual Studio
Microsoft Visual Studio is an integrated development environment
(IDE) from Microsoft. It is used to develop computer programs, as
well as websites, web apps, web services and mobile apps. The
default (main) programming language in Visual studio is C, but
many other programming languages are supported.
You could say Visual Studio is the big brother of Visual
Studio Code. Visual studio is available for Windows and
macOS.
Visual Studio (from 2017), has integrated support for Python, it
is called ”Python Support in Visual Studio”.
Web:
https://visualstudio.microsoft.com
Wikipedia:
https://en.wikipedia.org/wiki/MicrosoftV isualStudio
Go to my Web Site to learn more about Visual Studio and C
programming: https://www.halvorsen.blog/
Visual Studio and C:
https://www.halvorsen.blog/documents/programming/csharp/
19.2 Work with Python in Visual Studio
Work with Python in Visual Studio:
https://docs.microsoft.com/visualstudio/python/
125
Figure 19.1: Using Visual Studio as Python Editor
19.2.1 Make Visual Studio ready for Python
Program- ming
Visual Studio is mainly for Windows. A MacOS version of Visual
Studio do exists, but it has lot less features than the Windows
edition.
Note that Python support is available only on Visual Studio for
Windows. If you use Mac and Linux, you need to use Visual Studio
Code. You could say Visual Studio Code is a down-scaled version of
Visual Studio.
Visual Studio (from 2017), has integrated support for Python, it is
called ”Python Support in Visual Studio”. Even if it is integrated,
you need to manu- ally select which components you want to install
on your computer. Make sure to download and run the latest Visual
Studio 2017 installer for Windows.
when you run the Visual Studio installer (either for the first time or
if you already have installed Visual Studio 2017 and want to modify
it) the window shown in Figure 19.2 pops up.
The installer presents you with a list of so called workloads, which
are groups of related options for specific development areas. For
Python, select the ”Python development” workload and select
Install (Figure 19.3).
19.2.2 Python Interactive
To quickly test Python support, launch Visual Studio, press Alt+I
(or select from the menu: Tools - Python - Python Interactive
Window) to open the Python Interactive window. See Figure 19.4.
126
Lets write something like this:
1 >>> a = 2
127
Figure 19.2: Installing Python Extension for Visual Studio
Figure 19.3: Python Development Workload
2 >>> b = 5
3 >>> x = 3
4 >>> y = a ∗ x + b
5 >>> y
19.2.3 New Python Project
Lets see how we can create a Python Application.
Start by select from the menu: File - New - Project... The New
Project window pops up. See Figure 19.5.
We can create an ordinary Python Application (one or more Python
Scripts), we can choose to create a Web Application using either
Web Frameworks like Django or Flask, or we can create different
Desktop GUI applications. We can also create Games.
Example 19.2.1. Python Hello World Application in Visual Studio
128
Figure 19.4: Python Interactive
We start by creating a basic Hello World Python Application. See
Figure 19.1. Select File - New - Project... The New Project window
pops up. See Figure 19.5.
Name the project, e.g, ”PythonApplication1”.
In the Project Explorer, open the ”PythonApplication1.py” file and
enter the following Python code:
1 p r i n t ( ” H e l l o World” )
Hit F5 (our click the green arrow) in order to run or execute the
Python program. You can also right click on the file and select ”Start
without Debugging”.
[End of Example]
Example 19.2.2. Visual Studio Python Plotting
Create a new Python File by right click in the Solution Explorer and select Add
- New Item... and then select ”Empty Python
File”. Enter the following Python Code:
1 import m a tp l o t l i b . pyplot as plt
2 import numpy as np
3
4 xstart = 0
5 xstop = 2∗ np .
6
p i incre me nt
= 0.1
7
8
9
x = np . arange ( xs ta r t , xstop ,
10
11
i ncre me nt ) y = np . s i n ( x )
12
plt .plot(x, y) 129
p l t . t i t l e ( ’ y=s i n ( x ) ’ )
13
130
Figure 19.5: New Python Project
14 plt.xlabel( ’x’)
15 plt.ylabel(
16 ’y’)plt .gri
17 d()
18 p l t . a x i s ( [ 0 , 2∗ np . pi , −1, 1])
See also Figure 19.6.
Make sure to select proper Python Environment. See Figure
(19.7). Visual Studio supports multiple Python Environments.
In this example we use the Matplotlib package for plotting, so we
need to have that package installed on the computer. You can
install the Matplotlib package in different Python Environments.
I have installed the Matplotlib package as part of the Anaconda
distribution setup, so I select ”Anaconda x.x.x” in the Python
Environments window.
If you haven’t installed the Matplotlib package yet (either as part
of Anaconda or manually using PIP), you can also easily install
Python packages from Visual studio. See Figure 19.8.
You can also easily see which Python Packages that are installed
for the differ- ent Python Environments. See Figure 19.9.
131
Figure 19.6: Python Plotting Example with Visual Studio
The good thing about using Visual Studio is that you have a
graphical user interface for everything, you don’t need to use the
Command window etc. for installing Python Packages, etc.
Hit F5 (our click the green arrow) in order to run or execute the
Python program. You can also right click on the file and select
”Start without Debugging”.
We get the following results, see Figure 19.10.
[End of Example]
132
Figure 19.7: Select your Python Environment
Figure 19.8: Install Python Packages from Visual Studio
133
Figure 19.9: Installing Python Packages for different Python
Environments from Visual Studio
Figure 19.10: Python Plotting Example with Visual Studio
134
Chapter 20
PyCharm
PyCharm is cross-platform, with Windows, macOS and Linux
versions. The Community Edition is free to use, while the
Professional Edition (paid version) has some extra features.
The PyCharm Editor is shown in Figure 20.1.
Figure 20.1: PyCharm Python Editor
Web:
https://www.jetbrains.com/pycharm/
Wikipedia:
https://en.wikipedia.org/wiki/PyChar
m
Anaconda and JetBrains also have a collaboration and offer what
they call Py- Charm for Anaconda. You can download it here:
135
https://www.jetbrains.com/pycharm/promo/anaconda/
We have code editors like Visual Studio and Visual Studio Code
which can be used for many different programming languages by
installing different types of plugins.
Editors like Spyder and PyCharm are tailor-made editors for the
Python lan- guage.
Spyder is light-weight IDE typically used for scientific use.
PyCharm on the other hand is full-blown IDE for software
development in general by using the Python language. It supports
many plugins, it’s easier to program Django, etc.
136
Chapter 21
Wing Python IDE
The Wing Python IDE family of integrated development
environments (IDEs) from Wingware were created specifically for
the Python programming language.
3 different version of Wing exists [12]:
• Wing 101 – a very simplified free version, for teaching
beginning pro- grammers
• Wing Personal – free version that omits some features, for
students and hobbyists
• Wing Pro – a full-featured commercial (paid) version, for
professional programmers
Figure 21.1: Wing Python IDE
Web:
https://wingware.com
137
Wikipedia:
https://en.wikipedia.org/wiki/WingID
E
138
Chapter 22
Jupyter Notebook
The Jupyter Notebook is an open-source web application that
allows you to cre- ate and share documents that contain live code,
equations, visualizations and text.
The Notebook has support for over 40 programming languages, including
Python.
Figure 22.1: Jupyter Notebook [16]
Web:
http://jupyter.org
Wikipedia:
https://en.wikipedia.org/wiki/ProjectJ
upyter
139
22.1 JupyterHub
JupyterHub is a multi-user version of the notebook designed for
companies, classrooms and research labs [17].
JupyterHub runs in the cloud or on your own hardware.
JupyterHub is open-source and designed to be run on a variety of
infrastructure. This includes commercial cloud providers, virtual
machines, or even your own laptop hardware.
Web:
http://jupyter.org/hub
22.2 Microsoft Azure Notebooks
Microsoft Azure Notebooks is a version of Jupyter Notebook from Microsoft.
The good thing about Microsoft Azure Notebooks is that you have
the infras- tructure and everything up and running ready for you to
use. You can use it for free as well.
Web:
https://notebooks.azure.com
Example 22.2.1. Example Name
Figure 22.2 shows an overview of my Azure Notebook Projects.
Figure 22.2: Azure Notebook Projects
Figure 22.3 shows an overview of my Azure Notebook Project
Notebooks. Figure 22.4 shows an example of a simple Notebook.
[End of Example]
140
Figure 22.3: Azure Notebook Project Notebooks
Figure 22.4: Azure Notebook Example
141
Part V
Python for Mathematics
Applications
142
Chapter 23
Mathematics in Python
Python is a powerful tool for mathematical calculations.
If you are looking for similar using MATLAB, please take a look at
these re- sources:
https://www.halvorsen.blog/documents/programming/matlab/
23.1 Basic Math Functions
The Python Standard Library consists of different modules for
handling file I/O, basic mathematics, etc. You don’t need to install
these separately, but you need to important them when you want
to use some of these modules or some of the functions within these
modules.
In this chapter we will focus on the math module that is part of the
Python Standard Library.
The math module has all the basic math functions you need, such
as: Trigono- metric functions: sin(x), cos(x), etc. Logarithmic
functions: log(), log10(), etc. Constants like pi, e, inf, nan, etc. etc.
Example 23.1.1. Using the math module
We create some basic examples how to use a Library, a Package or a Module:
If we need only the sin() function we can do like this:
1 from math import sin
2
3 x = 3 . 14
4 y = sin(x)
5
6 print(y)
If we need a few functions we can do like this
143
1 from math import s in , cos
2
3 x = 3 . 14
4 y = sin(
5 x)print
6 (y)
7
8 y = cos (
x)print
If we need many functions we can do like this:
1 from math import ∗
2
3 x = 3 . 14
4 y = sin(
5 x)print
6 (y)
7
8 y = cos (
x)print
We can also use this alternative:
1 import math
2
3 x = 3 . 14
4 y = math . s i n ( x )
5
6 print(y)
We can also write it like this:
1 import math as mt
2
3 x = 3 . 14
4 y = mt . s i n ( x )
5
6 print(y)
[End of Example]
There are advantages and disadvantages with the different
approaches. In your program you may need to use functions from
many different modules or pack- ages. If you import the whole
module instead of just the function(s) you need you use more of the
computer memory.
Very often we also need to import and use multiple libraries where
the different libraries have some functions with the same name but
different use.
Other useful modules in the Python Standard Library are
statistics (where you have functions like mean(), stdev(), etc.)
For more information about the functions in the Python Standard
Library, see:
https://docs.python.org/3/library/
144
23.1.1 Exercises
Below you find different self-paced Exercises that you should go
through and solve on your own. The only way to learn Python is to
do lots of Exercises!
Exercise 23.1.1. Create Mathematical Expressions in Python
Create a function that calculates the following mathematical expression:
/
z = 3x2 + x2 + y2 + eln (x)
(23.1) Test with different values for x and y.
[End of Exercise]
Exercise 23.1.2. Create advanced Mathematical Expressions in
Python Create the following expression in Python:
ln (ax2 + bx +−c) sin(ax2 + bx + c)
f (x) = (23.2)
4πx2 + cos(x − 2)(ax2 + bx + c)
Given a = 1, b = 3, c = 5 Find f
(9) (The answer should be f (9)
= 0.0044)
Tip! You should split the expressions into different parts, such as:
poly = ax2 + bx + c
num = . . .
den = . . .
f =...
This makes the expression simpler to read and understand, and you
minimize the risk of making an error while typing the expression in
Python.
When you got the correct answer try to change to, e.g., a = 2, b
= 8, c = 6 Find f (9)
[End of Exercise]
Exercise 23.1.3. Pythagoras
145
Figure 23.1: Right-angled triangle
Pythagoras theorem is as follows:
c2 = a2 + b2 (23.3)
Create a function that uses Pythagoras to calculate the hypotenuse
of a right- angled triangle (Figure 23.1), e.g.:
1 d e f pythagoras ( a , b )
2 ...
3 ...
4 r e tu r n c
[End of Exercise]
Exercise 23.1.4. Albert Einstein
Given the famous equation from Albert Einstein:
E = mc2 (23.4)
The sun radiates 385x1024J/s of energy.
Calculate how much of the mass on the sun is used to create this energy per
day.
How many years will it take to convert all the mass of the sun
completely? Do we need to worry if the sun will be used up in our
generation or the next? justify the answer.
The mass of the sun is 2x1030kg.
146
[End of Exercise]
Exercise 23.1.5. Cylinder Surface Area
Create a function that finds the surface area of a cylinder based on the height
(h) and the radius (r) of the cylinder. See Figure ??.
Figure 23.2: cylinder
[End of Exercise]
23.2 Statistics
23.2.1 Introduction to Statistics
Mean or average:
The mean is the sum of the data divided by the number of data
points. It is commonly called “the average”,
Formula for
mean:
N
x1 + x2 + x3 + 1
x¯ = xN =L xi (23.5)
... + N
N i=1
Example 23.2.1. Mean
Given the following dataset: 2.2, 4.5, 6.2, 3.6, 2.6
L
Mea x
n:
1
x¯ =
147
2.2 + 4.5 + 6.2 +N = 3.6 + 2.6 = 19.1= 3.82 (23.6)
N i
5 5
i=1
148
[End of Example]
Variance:
Variance is a measure of the variation in a data set.
N
1
var(x) = L − x¯2) (23.7)
(xi
Standard N
i=1
deviation:
The standard deviation is a measure of the spread of the values
in a dataset or the value of a random variable. It is defined as the
square root of the variance.
v
√ u 1 L
N
std(x) = σ = var = (xi − x¯ ) 2 (23.8)
N
i=1
We typically use the symbol σ for standard
deviation. We have that σ2 = var(x)
23.2.2 Statistics functions in Python
Mathematical statistics functions in Python:
https://docs.python.org/3/library/statistics.html
statistics is part of the The Python Standard Library.
For more information about the functions in the Python Standard
Library, see:
https://docs.python.org/3/library/
Example 23.2.2. Statistics using the statistics module in Python
Standard Library
Below you find some examples how to use some of the statistics
functions in the statistics module in Python Standard Library:
149
1 import statistics as s t
2
3 data = [ − 1 . 0 , 2.5, 3.25, 5.75]
4
5 #Mean or Average
6 m = s t . mean ( data )
7 p r i n t (m)
8
9 # Standard Deviation
10 s t d e v = s t . stdev ( data )
150
11 print(st dev)
12
13 # Median
14 med = s t . median ( data )
15 p r i n t ( med)
16
17 # Variance
18 var = s t . va r i a n c e ( data )
19 p r i n t ( var )
Listing 23.1: Statistics functions in Python
[End of Example]
IMPORTANT: Do not name your file ”statistics.py” since the
import will be confused and throw the errors of the library not
existing and the mean function not existing.
You can also use the NumPy Library. NumPy is the fundamental
package for scientific computing with Python.
Here you find an overview of the NumPy library:
http://www.numpy.org
Example 23.2.3. Statistics using the NumPy Library
Below you find some examples how to use some of the statistics
functions in NumPy:
1 import numpy as np
2
3 data = [ − 1 . 0 , 2.5, 3.25, 5.75]
4
5 #Mean or Average
6 m = np . mean ( data )
7 p r i n t (m)
8
9 # Standard Deviation
10 s t d e v = np . std ( data )
11 print(st dev)
12
13 # Median
14 med = np . median ( data )
15 p r i n t ( med)
16
17 # Minimum Value
18 minv = np . min ( data )
19 p r i n t ( minv )
20
21 # Maxumum Value
22 maxv = np . max( data )
23 p r i n t ( maxv)
Listing 23.2: Statistics using the NumPy Library
151
[End of Example]
Exercise 23.2.1. Create your own Statistics Module in Python
Using the built-in functions in the Python Standard Library or the
NumPy li- brary is straightforward.
In order to get a deeper understanding of the mathematics behind
these func- tions and to learn more Python programming, you
should create your own Statistics Module in Python.
Create your own Statistics Module in Python (e.g.,
”mystatistics.py) and then create a Python Script (e.g.,
”testmystatistics.py) where you test these func- tions.
You should at least implement functions for mean, variance,
standard deviation, minimum and maximum.
[End of Exercise]
23.3 Trigonometric Functions
Python offers lots of Trigonometric functions, e.g., sin, cos, tan, etc.
Note! Most of the trigonometric functions require that the angle is
expressed in radians.
Example 23.3.1. Trigonometric Functions in Math module
1 import math as mt
2
3 x = 2∗mt . p i
4
5
y = mt . s i n (
6
x)print(y)
7
8
y = mt . cos (
9
x)print(y
10
)
11
12
y = mt . tan (
x)print(y
Listing 23.3: Trigonometric Functions in Math module
Here we have used the Math module in the Python Standard Library.
For more information about the functions in the Python Standard
Library, see:
https://docs.python.org/3/library/index.html
152
[End of Example]
Example 23.3.2. Plotting Trigonometric Functions
In the example above we used some of the trigonometric functiosn
in basic cal- culations.
Lets see if we are able to plot these functions.
1 import math as mt
2 import m a tp l o t l i b . pyplot as plt
3
4 xdata = [
5 ] ydata =
6 []
7
8 f o r x i n range ( 0 , 10
9 ) : xdata . append ( x )
10 y = mt . s i n ( x
11 ) ydata . append
12 (y)
13
Listing 23.4: Plotting Trigonometric Functions
In the example we have plotted sin(x), we can easily extend the
program to plot cos(x), etc.
For more information about the functions in the Python Standard
Library, see:
https://docs.python.org/3/library/index.html
[End of Example]
Example 23.3.3. Trigonometric Functions using NumPy
The problem with using the Trigonometric functions in the the
Math module from the Python Standard Library is that they don’t
handle an array as input.
We will use the NumPy library instead because they handle arrays,
in addition to all the handy functionality in the NumPy library.
1 import numpy as np
2 import m a tp l o t l i b . pyplot as plt
3
4 xstart = 0
5 xstop = 2∗ np .
6
p i incre me nt
= 0.1
7
8
9
x = np . arange ( xs ta r t , xstop ,
10
i ncre me nt ) y = np . s i n ( x )
153
11 plt .plot(x, y)
12 p l t . t i t l e ( ’ y=s i n ( x ) ’ )
13 plt.xlabel( ’x’)
14 plt.ylabel(
15 ’y’)plt .gri
16 d()
17 p l t . a x i s ( [ 0 , 2∗ np . pi , −1, 1])
18 p l t . show ( )
19
20 y = np . cos (
21 x)plt.plot(
22 x, y)
23 p l t . t i t l e ( ’ y=cos ( x ) ’ )
24 plt.xlabel( ’x’)
25 plt.ylabel(
26 ’y’)plt .gri
27 d()
28
p l t . a x i s ( [ 0 , 2∗ np . pi , −1, 1])
29 p l t . show ( )
30
31 y = np . tan (
32
x) plt.plot
33
(x, y)
34
p l t . t i t l e ( ’ y=tan ( x ) ’ )
35
plt.xlabel( ’x’)
Listing 23.5: Trigonometric Functions using NumPy
This Python script gives the plots as shown in Figure 23.3.
[End of Example]
Exercise 23.3.1. Create Python functions for converting between
radians an degrees
Since most of the trigonometric functions require that the angle is
expressed in radians, we will create our own functions in order to
convert between radians and degrees.
It is quite easy to convert from radians to degrees or from degrees
to radians. We have that:
2π[radians] = 360[degrees] (23.9)
This
gives:
180
d[degrees] = ) (23.10)
r[radians] × ( π
and
π
r[radians] = d[degrees] × (
) (23.11)
180
Create two functions that convert from radians to degrees (r2d(x))
and from degrees to radians (d2r(x)) respectively.
154
These functions should be saved in one Python file .py.
Test the functions to make sure that they work as expected.
[End of Exercise]
Exercise 23.3.2. Trigonometric functions on right
triangle Given right triangle as shown in Figure 23.4.
Create a function that finds the angle A (in degrees) based on input
arguments (a,c), (b,c) and (a,b) respectively.
Use, e.g., a third input “type” to define the different types above.
Use you previous function r2d() to make sure the output of your
function is in degrees and not in radians.
Test the function to make sure it works
properly. Tip! We have that:
a a
sin(A) = → A = arcsin( ) (23.12)
c c
b b
cos(A) = → A = arccos( ) (23.13)
c c
a a
tan(A) = → A = arctan( ) (23.14)
b b
We may also need to use the Pythagoras’ theorem:
c2 = a2 + b2 (23.15)
1 >>> a=5
2 >>> b=8
3 >>> c = s q r t ( a ∗∗2 + b ∗∗ 2 )
4
5 >>> A = r i g h t t r i a n g l e ( a , c , ’ s i n ’ )
6 A =
7 32 . 0054
8
9 >>> A = r i g h t t r i a n g l e ( b , c , ’ cos ’ )
10 A =
11 32 . 0054
12 >>> A = r i g h t t r i a n g l e ( a , b , ’ tan ’ )
13 A =
14 32 . 0054
We also see that the answer in this case is the same, which is expected.
155
[End of Exercise]
Exercise 23.3.3. Law of Cosines
Given the triangle as shown in Figure 23.5.
Create a function where you find c using the law of cosines.
c2 = a2 + b2 − 2ab cos(C) (23.16)
Test the functions to make sure it works properly.
[End of Exercise]
Exercise 23.3.4. Plotting Trigonometric Functions
Plot sin(θ) and cos(θ) for≤0 θ ≤ 2π in the same plot (both in the
same plot and in 2 different subplots).
Make sure to add labels and a legend and use different line styles
and colors for the plots.
[End of Exercise]
23.4 Polynomials
A polynomial is expressed as:
p(x) = p1xn + p2xn−1 + ... + pnx + pn+1
(23.17) where p1, p2, p3, ... are the coefficients of the polynomial.
We will use the Polynomial Module in the NumPy Package.
Web:
https://docs.scipy.org/doc/numpy-1.13.0/reference/
routines.polynomials.polynomial.html Other Resources:
Python Advanced Course Topics - Polynomials:
https://www.python-course.eu/polynomialclassinpytho
n.php
156
12
6
Figure 23.3: Trigonometric Functions
Figure 23.4: Right Triangle
Figure 23.5: Law of Cosines
127
Part VI
Resources
128
Chapter 24
Python Resources
Here you find my Web page with Python resources [1]:
https://www.halvorsen.blog/documents/programming/python/
Python Home Page
[6]:
https://www.python.
org
Python Standard Library [18]:
https://docs.python.org/3/library/index.
html
24.1 Python Distributions
Anaconda:
https://www.anaconda.c
om
24.2 Python Libraries
NumPy Library:
http://www.numpy.or
g
SciPy Library:
https://www.scipy.org
Matplotlib Library:
https://matplotlib.org
129
24.3 Python Editors
Spyder:
https://www.spyder-
ide.org
130
Visual studio Code:
https://code.visualstudio.com
Visual Studio:
https://visualstudio.microsoft.com
PyCharm:
https://www.jetbrains.com/pycharm/
Wing:
https://wingware.com
Jupyter Notebook:
http://jupyter.org
24.4 Python Tutorials
Python Tutorial - w3schools.com [13]:
https://www.w3schools.com/python/
The Python Guru [19]:
https://thepythonguru.com
Wikibooks - A Beginner’s Python Tutorial:
https://en.wikibooks.org/wiki/ABeginner
TutorialsPoints - Python Tutorial:
https://www.tutorialspoint.com/python/
The Hitchhiker’s Guide to
Python: https://docs.python-
guide.org
Google’s Python Class:
https://developers.google.com/edu/python/
24.5 Python in Visual Studio
Work with Python in Visual Studio
https://docs.microsoft.com/visualstudio/python/
131
Bibliography
[1] H.-P. Halvorsen, “Technology blog - https://www.halvorsen.blog,” 2018.
[2] H.-P. Halvorsen, “Technology blog -
https://en.wikipedia.org/wiki/Python(programminglanguage),11 20
[3] T. . T. P. Languages, “The 2018 top programming languages
- https://spectrum.ieee.org/at-work/innovation/the-
2018-top- programming-languages,” 2018.
[4] S. Overflow, “Stack overflow developer survey 2018 -
https://insights.stackoverflow.com/survey/2018/,” 2018.
[5] stackoverflow.blog, “The incredible growth of python -
https://stackoverflow.blog/2017/09/06/incredible-growth-
python/,”
2018.
[6] python.org, “python.org - https://www.python.org,” 2018.
[7] python.org, “The python tutorial -
https://docs.python.org/3.7/tutorial/,” 2018.
[8] python.org, “Python 3.7.1 documentation -
https://docs.python.org/3.7/,” 2018.
[9] scipy.org, “Scipy - https://www.scipy.org,” 2018.
[10]matplotlib.org, “Matplotlib - https://matplotlib.org,” 2018.
[11]pandas, “pandas - http://pandas.pydata.org,” 2018.
[12]Wingware, “Wingware python ide - https://wingware.com,” 2018.
[13]w3schools.com, “Python tutorial -
https://www.w3schools.com/python/,” 2018.
[14]Wikipedia, “Debugging - https://en.wikipedia.org/wiki/Debugging,” 2018.
[15] TechBeamers, “Get the best
python ide -
https://www.techbeamers.com/best-python-ide-python-
programming/,” 2018.
[16]Jupyter, “Jupyter - https://jupyter.org,” 2018.
132
[17]JupyterHub, “Jupyterhub - http://jupyter.org/hub,” 2018.
133
[18] python.org, “The python
standard library -
https://docs.python.org/3/library/,” 2018.
[19]T. P. Guru, “The python guru - https://thepythonguru.com,” 2018.
134
Part VII
Solutions to Exercises
135
Start using Python
Simulation and Plotting of Dynamic System
Given the autonomous
x˙ = ax (1)
system: Where:
1
a=−
T
where T is the time constant.
The solution for the differential equation is:
x(t) = eatx0 (2)
Set T=5 and the initial condition x(0)=1.
Create a Script in Python (.py file) where you plot the solution x(t) in
the time interval:
0 ≤ t ≤ 25
Add Grid, and proper Title and Axis Labels to the plot.
Python Script:
1 import math as mt
2 import numpy as np
3 import m a tp l o t l i b . pyplot as plt
4
5
6 # Model Parameters
7 T = 5
8 a = −1/T
9
10 # S i m u l a t i o n Parameters
11 x0 = 1
12 t = 0
13
14 tstart = 0
136
15 ts to p = 25
16
17 i ncrement = 1
18
19 x = []
20 x = np . z e r o s ( ts to p +1)
21
22 t = np . arange ( t s t a r t , ts to p +1, i ncre me nt )
23
24
25 # Define the Function
26 f o r k i n range ( ts to p ) :
27 x [ k ] = mt . exp ( a ∗ t [ k ] ) ∗ x0
28
29
30 # Plot the S i m u l a t i o n Re s u l ts
31 plt .plot(t,x)
32 p l t . t i t l e ( ’ S i m u l a t i o n o f Dynamic System ’ )
33 plt . xlabel( ’t ’)
34 plt . ylabel( ’x’)
35 plt.grid()
36 p l t . a x i s ( [ 0 , 25 , 0 , 1 ] )
37 p l t . show ( )
The simulation gives the results as shown in Figure 1.
Figure 1: Simulation of Dynamic System
[End of Exercise]
137
Python Programming
Qc Hans-Petter
Halvorsen August
12, 2020 ISBN:978-
82-691106-4-7
138
Python Programming