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-
dows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6
, 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.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7
, 10 Error Handling in Python 79
10.1 Introduction to Error Handling . . . . . . . . . . . . . . . . . . . 79
10.1.1 Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . 79
10.1.2 Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . 79
10.2 Exceptions Handling . . . . . . . . . . . . . . . . . . . . . . . . . 80
11 Debugging in Python 82
12 Installing and using Python Packages 83
12.1 What is PIP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
III Python Environments and Distributions 84
13 Introduction to Python Environments and Distributions 85
13.1 Package and Environment Managers . . . . . . . . . . . . . . . . 86
13.1.1 PIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
13.1.2 Conda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
13.2 Python Virtual Environments . . . . . . . . . . . . . . . . . . . . 87
14 Anaconda 88
14.1 Anaconda Navigator . . . . . . . . . . . . . . . . . . . . . . . . . 88
15 Enthought Canopy 90
IV Python Editors 91
16 Python Editors 92
17 Spyder 94
18 Visual Studio Code 96
18.1 Introduction to Visual Studio Code . . . . . . . . . . . . . . . . . 96
18.2 Python in Visual Studio Code . . . . . . . . . . . . . . . . . . . . 97
19 Visual Studio 98
19.1 Introduction to Visual Studio . . . . . . . . . . . . . . . . . . . . 98
19.2 Work 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
20 PyCharm 106
21 Wing Python IDE 108
22 Jupyter Notebook 110
22.1 JupyterHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
22.2 Microsoft Azure Notebooks . . . . . . . . . . . . . . . . . . . . . 111
8