diff --git a/Intermediate.ipynb b/Intermediate.ipynb
index 323487d..e541d47 100644
--- a/Intermediate.ipynb
+++ b/Intermediate.ipynb
@@ -4,11 +4,11 @@
"cell_type": "markdown",
"id": "872c6494",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"ARC course \"Coding with Python\" (Intermediate level)\n",
@@ -20,10 +20,11 @@
"cell_type": "markdown",
"id": "2cd478b7",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"Welcome to our ARC course \"Coding with Python\" (Intermediate level).\n",
@@ -47,11 +48,11 @@
"cell_type": "markdown",
"id": "4d58fde4",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# The Python Environment\n",
@@ -72,11 +73,11 @@
"cell_type": "markdown",
"id": "e673e2cd",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# Table of Contents"
@@ -86,11 +87,11 @@
"cell_type": "markdown",
"id": "85069fdb",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
" - [0. Introduction](#0.-Introduction)\n",
@@ -117,11 +118,11 @@
"cell_type": "markdown",
"id": "153ed362",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 0. Introduction"
@@ -131,11 +132,11 @@
"cell_type": "markdown",
"id": "6ba842c0",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Course objectives"
@@ -145,11 +146,11 @@
"cell_type": "markdown",
"id": "b1d20fc9",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"By the end of this course, you should know:\n",
@@ -165,11 +166,11 @@
"cell_type": "markdown",
"id": "cdfa9441",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Useful resources"
@@ -179,10 +180,11 @@
"cell_type": "markdown",
"id": "3eadf8e2",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"There are plenty of resources to learn Python in the Internet from. These can be recommended by this tutorial for further learning:\n",
@@ -197,11 +199,11 @@
"cell_type": "markdown",
"id": "26d2d446",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# **Part I**"
@@ -211,11 +213,11 @@
"cell_type": "markdown",
"id": "4e49802b",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 1. Recap"
@@ -225,10 +227,11 @@
"cell_type": "markdown",
"id": "f99bdeea",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"This section is a (very) brief recap of materials covered in the Beginner Python course:\n",
@@ -247,11 +250,11 @@
"cell_type": "markdown",
"id": "b721c83a",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Data Types, variables, operators"
@@ -270,11 +273,11 @@
}
}
},
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Variables\n",
@@ -303,11 +306,11 @@
"cell_type": "markdown",
"id": "e1bd297e",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**NOTE:** Values can be overwritten!\n",
@@ -335,11 +338,11 @@
"cell_type": "markdown",
"id": "2a63c2dd",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Data types"
@@ -349,11 +352,11 @@
"cell_type": "markdown",
"id": "7ab44bf2",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"Among the basic ones are `str` strings, `int` integers, `float` floating-point numbers and `bool` booleans.\n",
@@ -371,10 +374,11 @@
"cell_type": "markdown",
"id": "b68a5bbf",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "editable": false
+ "tags": []
},
"source": [
"**Operators** \n",
@@ -388,11 +392,11 @@
"cell_type": "markdown",
"id": "d20cb9b3",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Comments\n",
@@ -419,11 +423,11 @@
"cell_type": "markdown",
"id": "8ee98ee9",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## User Input\n",
@@ -434,11 +438,11 @@
"cell_type": "markdown",
"id": "52819c95",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Reading and Writing Files"
@@ -448,11 +452,11 @@
"cell_type": "markdown",
"id": "a0966820",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**Opening a File**\n",
@@ -482,11 +486,11 @@
"cell_type": "markdown",
"id": "aadba414",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**Reading from a File**\n",
@@ -501,11 +505,11 @@
"cell_type": "markdown",
"id": "1f1185e6",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**Writing to a File**"
@@ -515,11 +519,11 @@
"cell_type": "markdown",
"id": "179f132a",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"One way we can write to files is using the `write()` function inside a with block."
@@ -546,11 +550,11 @@
"cell_type": "markdown",
"id": "b61a8691",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Lists"
@@ -560,11 +564,11 @@
"cell_type": "markdown",
"id": "9c82edee",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"Python can work not only with basic data types mentioned before, but also with compound ones. Among the most commonly used is _lists_ to contain other data types.\n",
@@ -578,11 +582,11 @@
"cell_type": "markdown",
"id": "8bb91a15",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"An ordered list of items, accessed by a numerical index (starting at `0`). Elements within a list can be removed, modified, or accessed by their index, and a list can have values added to it.\n",
@@ -610,11 +614,11 @@
"cell_type": "markdown",
"id": "efc747a1",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**List Access** \n",
@@ -639,11 +643,11 @@
"cell_type": "markdown",
"id": "b8369a1a",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**Slicing** \n",
@@ -669,11 +673,11 @@
"cell_type": "markdown",
"id": "fe6ffaf2",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**Empty List** \n",
@@ -699,11 +703,11 @@
"cell_type": "markdown",
"id": "f87cfa0f",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Repetitions and Conditions\n"
@@ -713,11 +717,11 @@
"cell_type": "markdown",
"id": "eae67d96",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**Logical Operators** \n",
@@ -728,11 +732,11 @@
"cell_type": "markdown",
"id": "b38b2739",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**AND:**"
@@ -762,10 +766,11 @@
"cell_type": "markdown",
"id": "9303b3ff",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "editable": false
+ "tags": []
},
"source": [
"**Conditions** \n",
@@ -794,11 +799,11 @@
"cell_type": "markdown",
"id": "3246bbe1",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**Else/Elif** \n",
@@ -810,11 +815,11 @@
"cell_type": "markdown",
"id": "8c87d3f8",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"**Repetitions** \n",
@@ -852,11 +857,11 @@
"cell_type": "markdown",
"id": "ad3766a1",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Functions"
@@ -866,11 +871,11 @@
"cell_type": "markdown",
"id": "354a04f1",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"A function is a reusable block of code used to perform a specific task.\n",
@@ -905,11 +910,11 @@
"cell_type": "markdown",
"id": "7e95592e",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 2. Data structures\n",
@@ -922,11 +927,11 @@
"cell_type": "markdown",
"id": "aae1eed3",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## List methods\n",
@@ -953,10 +958,11 @@
"cell_type": "markdown",
"id": "50327676",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"We can access the number of elements with `len`"
@@ -981,11 +987,11 @@
"cell_type": "markdown",
"id": "5bda75d6",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Adding and removing values\n",
@@ -1026,10 +1032,11 @@
"cell_type": "markdown",
"id": "7e4b1b25",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"removing a specific element"
@@ -1054,11 +1061,11 @@
"cell_type": "markdown",
"id": "290722a8",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Iterating over lists\n",
@@ -1084,10 +1091,11 @@
"cell_type": "markdown",
"id": "81d1f392",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"we can iterate over the list starting from the back using `reversed`"
@@ -1113,10 +1121,11 @@
"cell_type": "markdown",
"id": "f6fce9a1",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"and `sorted`, sorts the values"
@@ -1142,10 +1151,11 @@
"cell_type": "markdown",
"id": "b26074d7",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"If you want a reversed new list you need to convert the iterator into a list"
@@ -1186,11 +1196,11 @@
"cell_type": "markdown",
"id": "e00e5f84",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Checking if an item is in a list\n",
@@ -1217,11 +1227,11 @@
"cell_type": "markdown",
"id": "8be77c84",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Emptying a list"
@@ -1246,11 +1256,11 @@
"cell_type": "markdown",
"id": "04d87890",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## _Tuples_\n",
@@ -1393,11 +1403,11 @@
"cell_type": "markdown",
"id": "9380a5f8",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"The dictionary method `items` returns a list of tuples (see an exercise after _dictionaries_)."
@@ -1407,11 +1417,11 @@
"cell_type": "markdown",
"id": "66b0bb86",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## _Sets_\n",
@@ -1470,11 +1480,11 @@
"cell_type": "markdown",
"id": "4131293a",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"There are a few operators that work with sets as well as some useful methods:\n",
@@ -1495,15 +1505,36 @@
"| `S.issuperset(A)` | Returns `True` if A \u2282 S and `False` otherwise |\n"
]
},
+ {
+ "cell_type": "markdown",
+ "id": "459026c3-c595-4478-85a3-c45631330383",
+ "metadata": {
+ "editable": false,
+ "raw_mimetype": "",
+ "slideshow": {
+ "slide_type": "slide"
+ },
+ "tags": []
+ },
+ "source": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
{
"cell_type": "markdown",
"id": "03763f24",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### _Example 1_\n",
@@ -1532,10 +1563,11 @@
"cell_type": "markdown",
"id": "d0501b3f",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"### _Example 2_\n",
@@ -1567,11 +1599,11 @@
"cell_type": "markdown",
"id": "245d1725",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## _Dictionaries_\n",
@@ -1582,11 +1614,11 @@
"cell_type": "markdown",
"id": "8b83afd4",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": null
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"- _Dictionaries_ are like labelled drawers:\n",
@@ -1682,11 +1714,11 @@
"cell_type": "markdown",
"id": "de3b6a25-6150-4fb7-8cab-e97872f8974e",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Accessing values from dictionaries"
@@ -1696,7 +1728,11 @@
"cell_type": "markdown",
"id": "1e999366-3c44-4fa2-ae18-6825939303df",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"We can use the square brackets to access values from a `dict`"
@@ -1722,7 +1758,11 @@
"cell_type": "markdown",
"id": "3f3d4fa3-67d1-4d84-ae6c-452a8a436c55",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"Alternatively we can use `get`, which allows do define a default value for a non-existing key"
@@ -1748,11 +1788,11 @@
"cell_type": "markdown",
"id": "968a105e-1cc1-45e7-aa30-d19ce18943fe",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Looping over a dictionary"
@@ -1762,7 +1802,11 @@
"cell_type": "markdown",
"id": "30dcc6cd-7be8-4ed8-a17c-be18747ec0d6",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"There is three main functions to loop over an dictionary: `keys()`, `values()`, and `items()`."
@@ -1820,11 +1864,11 @@
"cell_type": "markdown",
"id": "f73a79d3",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Notes on _lists_, _strings_, _tuples_, _sets_, and _dictionaries_"
@@ -1834,11 +1878,11 @@
"cell_type": "markdown",
"id": "624091b9",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"* **_Lists_** and **_dictionaries_** are _mutable_, which means their contents can be changed.\n",
@@ -1850,11 +1894,11 @@
"cell_type": "markdown",
"id": "7271e95a",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Similarities of _lists_ and _strings_:\n",
@@ -1903,11 +1947,11 @@
"cell_type": "markdown",
"id": "b35c5868",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"---\n",
@@ -1942,11 +1986,11 @@
"cell_type": "markdown",
"id": "70429b28",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## _Lists_ and _strings_ behave differently when we try to make copies."
@@ -1992,11 +2036,11 @@
"cell_type": "markdown",
"id": "36c080f0",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"Everything in Python is an object. This includes numbers, strings, and lists and any other data structure. When we\n",
@@ -2027,11 +2071,11 @@
"cell_type": "markdown",
"id": "b424a761",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Have a Play!"
@@ -2041,10 +2085,11 @@
"cell_type": "markdown",
"id": "38cc0279",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "editable": false
+ "tags": []
},
"source": [
"### _Exercise 1 (dictionaries)_"
@@ -2054,11 +2099,12 @@
"cell_type": "markdown",
"id": "3f494a2e",
"metadata": {
+ "editable": false,
"lines_to_next_cell": 2,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"1) Create a dictionary of the days in the months of the year.\n",
@@ -2090,11 +2136,11 @@
"cell_type": "markdown",
"id": "1178f7dc",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### _Exercise 2 (dictionaries)_"
@@ -2104,11 +2150,12 @@
"cell_type": "markdown",
"id": "31e0b17b",
"metadata": {
+ "editable": false,
"jp-MarkdownHeadingCollapsed": true,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"1. Create a dictionary of several countries and capitals. Think about what's going to be a key and a value.\n",
@@ -2142,11 +2189,11 @@
"cell_type": "markdown",
"id": "07d53abe",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### _Exercise 3 (tuples)_"
@@ -2156,10 +2203,11 @@
"cell_type": "markdown",
"id": "6e83da5f",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"Try `items()` method on the dictionary you've created before. Print that out. What kind of data structure does it return?"
@@ -2190,11 +2238,11 @@
"cell_type": "markdown",
"id": "f2ad81c8",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### _Exercise 4 (lists)_"
@@ -2204,10 +2252,11 @@
"cell_type": "markdown",
"id": "7c84ec76",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"Given this list: "
@@ -2232,10 +2281,11 @@
"cell_type": "markdown",
"id": "01378c1c",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"Complete these tasks:"
@@ -2269,11 +2319,11 @@
"cell_type": "markdown",
"id": "5bc9a961",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 3. Conditional expressions\n",
@@ -2308,11 +2358,11 @@
"cell_type": "markdown",
"id": "21217bab",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"---\n",
@@ -2343,11 +2393,11 @@
"cell_type": "markdown",
"id": "63274497",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"---\n",
@@ -2392,11 +2442,11 @@
"cell_type": "markdown",
"id": "a6f9d70c-8116-4e65-b719-e3eb2afa7338",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Have a play!"
@@ -2406,10 +2456,11 @@
"cell_type": "markdown",
"id": "6dd1230b",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "editable": false
+ "tags": []
},
"source": [
"#### Conditional Expression\n",
@@ -2439,11 +2490,11 @@
"cell_type": "markdown",
"id": "f77b3d5e",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 4. Comprehensions"
@@ -2453,10 +2504,11 @@
"cell_type": "markdown",
"id": "0002904e",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "editable": false
+ "tags": []
},
"source": [
"### `list` comprehensions\n",
@@ -2484,10 +2536,11 @@
"cell_type": "markdown",
"id": "2b2a108f",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"You can simplify it using list comprehensions:"
@@ -2513,10 +2566,11 @@
"cell_type": "markdown",
"id": "fba1d4bd",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"We can create a list for only a subset with a condition:"
@@ -2542,7 +2596,11 @@
"cell_type": "markdown",
"id": "6bf06bb9-70d0-43e5-9c71-279f038da7c1",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"We can also use ternary expressions in list comprehensions"
@@ -2568,11 +2626,11 @@
"cell_type": "markdown",
"id": "23631ac8",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### `dict` comprehensions"
@@ -2600,11 +2658,11 @@
"cell_type": "markdown",
"id": "2d4e0235",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### `set` comprehensions"
@@ -2630,11 +2688,11 @@
"cell_type": "markdown",
"id": "f8beaad4",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Have a play!\n",
@@ -2667,11 +2725,11 @@
"cell_type": "markdown",
"id": "2092afdb",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"#### Dictionary Comprehension\n",
@@ -2700,7 +2758,11 @@
"cell_type": "markdown",
"id": "13a0e98b",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"# **Part II**"
@@ -2710,11 +2772,11 @@
"cell_type": "markdown",
"id": "6e54d68e",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 5. Exceptions\n",
@@ -2736,11 +2798,11 @@
"cell_type": "markdown",
"id": "e4ffd520",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Exceptions often are used for known edge cases \n"
@@ -2768,11 +2830,11 @@
"cell_type": "markdown",
"id": "d26956f3",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Reraising Meaningful exceptions"
@@ -2812,11 +2874,11 @@
"cell_type": "markdown",
"id": "44d08a7e",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Raising exceptions for invalid values"
@@ -2847,11 +2909,11 @@
"cell_type": "markdown",
"id": "6011ded7",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## The `finally` block will always be executed, either after code execution or after the failure\n",
@@ -2910,11 +2972,11 @@
"cell_type": "markdown",
"id": "bbc81d0f",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Best Practice:\n",
@@ -2933,11 +2995,11 @@
"cell_type": "markdown",
"id": "67e040dc",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Have a play:"
@@ -2947,11 +3009,11 @@
"cell_type": "markdown",
"id": "ff630616",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"\n",
@@ -2990,11 +3052,11 @@
"cell_type": "markdown",
"id": "ecad0562",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 6. Introduction to modules\n",
@@ -3005,11 +3067,11 @@
"cell_type": "markdown",
"id": "dc4b7323-f4f7-4b51-b6da-f651abf5029e",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"Modules let us:\n",
@@ -3022,11 +3084,11 @@
"cell_type": "markdown",
"id": "9e1c43a8",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Importing _modules_"
@@ -3036,11 +3098,11 @@
"cell_type": "markdown",
"id": "db90a278",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"There are several ways of importing _modules_:"
@@ -3138,11 +3200,11 @@
"cell_type": "markdown",
"id": "04bec6e4-8e4d-4899-a3c3-c9abd332f275",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Why Namespaces Matter\n",
@@ -3173,11 +3235,11 @@
"cell_type": "markdown",
"id": "36f46ead-b9a1-481f-8798-edbfc58b5504",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"Without namespaces, Python, and your reader, couldn't tell them apart."
@@ -3187,11 +3249,11 @@
"cell_type": "markdown",
"id": "fbf736e6-8dfb-4a00-86fb-5e71de650e9f",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"----\n",
@@ -3219,11 +3281,11 @@
"cell_type": "markdown",
"id": "d1cc0855",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Getting help\n",
@@ -3264,10 +3326,11 @@
"cell_type": "markdown",
"id": "8e33b8e3",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"---"
@@ -3277,11 +3340,11 @@
"cell_type": "markdown",
"id": "2d186e61-b776-483a-a6b9-0890af512e80",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 7. Advanced string manipulation"
@@ -3291,11 +3354,11 @@
"cell_type": "markdown",
"id": "e34aedb6",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## String Methods - Working with String Objects"
@@ -3305,10 +3368,11 @@
"cell_type": "markdown",
"id": "ffef8f84",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"In Python, strings are objects, and objects have **methods** - functions that belong to and operate on that object.\n",
@@ -3346,11 +3410,11 @@
"cell_type": "markdown",
"id": "c9016a2e-dee1-4030-a1a0-8e519a84be6f",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"Common categories of string methods we'll explore:\n",
@@ -3364,11 +3428,11 @@
"cell_type": "markdown",
"id": "00e14678-81a2-4509-815a-53f9f2fdb332",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Finding/searching string methods"
@@ -3378,10 +3442,11 @@
"cell_type": "markdown",
"id": "a4fa9b5b",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"These methods help you locate substrings within a string, returning their position or checking for their presence:\n",
@@ -3425,11 +3490,11 @@
"cell_type": "markdown",
"id": "40d4c38b-9a07-4e49-a9b3-003dd13f129d",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Checking string methods"
@@ -3439,11 +3504,11 @@
"cell_type": "markdown",
"id": "7b5ac28b-5cfb-4c43-bf54-093c240cbe2b",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"These methods return boolean values (`True` or `False`) to verify if a string matches certain patterns or criteria:\n",
@@ -3491,11 +3556,11 @@
"cell_type": "markdown",
"id": "e040bf97-a6bd-493e-b047-2041b5a99131",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"The canonical way to search a string (if not interested in the index):"
@@ -3521,11 +3586,11 @@
"cell_type": "markdown",
"id": "fe3ce02d-08bd-4c52-a935-d27b843dde39",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Transforming string methods"
@@ -3535,10 +3600,11 @@
"cell_type": "markdown",
"id": "80b12b8b",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"These methods create modified versions of strings by replacing content, changing case, or removing unwanted characters. _**Remember**: strings are immutable, so these methods always return a new string._\n",
@@ -3607,11 +3673,11 @@
"cell_type": "markdown",
"id": "6cf8076f-8f50-49ae-b558-39336c323880",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Splitting/joining string methods"
@@ -3621,10 +3687,11 @@
"cell_type": "markdown",
"id": "71a4546c",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "editable": false
+ "tags": []
},
"source": [
"These methods allow you to break strings apart into lists of substrings, or combine lists of strings into a single string. They're particularly useful for parsing text data or formatting output:\n",
@@ -3657,11 +3724,11 @@
"cell_type": "markdown",
"id": "0b649711-58b1-4174-9277-2a921e6a3b6f",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"The `join` operation is `a_string.join()` where `a_string` is placed between every string of a list"
@@ -3703,11 +3770,11 @@
"cell_type": "markdown",
"id": "a965b5d9-59f4-4ed5-b7e9-89f5f0bcf60f",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Have a play!"
@@ -3717,11 +3784,11 @@
"cell_type": "markdown",
"id": "a2cd1c9a-967b-4f4b-8153-c4f55d50b377",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Practical Example: Text Processing Pipeline\n",
@@ -3797,11 +3864,11 @@
"cell_type": "markdown",
"id": "9fb3a479-cddd-4b00-8e5d-88194c82f9ed",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"#### Solution"
@@ -3828,7 +3895,11 @@
"cell_type": "markdown",
"id": "586e5a27",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"# Thank You for Attending! \ud83d\udc4b\n",
@@ -3849,7 +3920,11 @@
"cell_type": "markdown",
"id": "25f9ad8e",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"# **Optional Topics**"
@@ -3859,11 +3934,11 @@
"cell_type": "markdown",
"id": "995ee9e7-cde0-483e-84c9-9df1b3238384",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 8. (Optional) Working with modules: Examples and creating your own"
@@ -3873,11 +3948,11 @@
"cell_type": "markdown",
"id": "b14a6818",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Some useful _modules_"
@@ -3887,11 +3962,11 @@
"cell_type": "markdown",
"id": "012efab2",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"Python comes with a program called _pip_ (Python Package Installer) which will automatically fetch packages released and listed on PyPI: `pip install `"
@@ -3901,11 +3976,11 @@
"cell_type": "markdown",
"id": "eb000d98",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"| Name | Description |\n",
@@ -3931,11 +4006,11 @@
"cell_type": "markdown",
"id": "4e16a864",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Using _modules_"
@@ -3945,11 +4020,11 @@
"cell_type": "markdown",
"id": "17798548",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### _Example_\n",
@@ -4084,11 +4159,11 @@
"cell_type": "markdown",
"id": "4e9801e0",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"---\n",
@@ -4099,11 +4174,11 @@
"cell_type": "markdown",
"id": "a306f3cb",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"Writing a csv file:"
@@ -4142,12 +4217,12 @@
"cell_type": "markdown",
"id": "3a9c7b35",
"metadata": {
+ "editable": false,
"jp-MarkdownHeadingCollapsed": true,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"---\n",
@@ -4200,11 +4275,11 @@
"cell_type": "markdown",
"id": "6ee8121a",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"---"
@@ -4214,11 +4289,11 @@
"cell_type": "markdown",
"id": "a00f019b",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Building your own module\n",
@@ -4238,11 +4313,11 @@
"cell_type": "markdown",
"id": "dd9284d3-b9cc-43b1-a369-731c3e09351e",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Simple example:"
@@ -4252,7 +4327,11 @@
"cell_type": "markdown",
"id": "9bdac1cc-4bdc-4a40-b4d7-25e24edc611f",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"Create a file called `calculator.py`:"
@@ -4285,11 +4364,11 @@
"cell_type": "markdown",
"id": "a547c272-803a-46e8-af1f-00600ad11e92",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"Then you can use it in your main program:"
@@ -4318,11 +4397,11 @@
"cell_type": "markdown",
"id": "47dd6a0c",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### ```__main__``` special built-in variable\n",
@@ -4337,11 +4416,11 @@
"cell_type": "markdown",
"id": "7f4123ae",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"\n",
@@ -4361,11 +4440,11 @@
"cell_type": "markdown",
"id": "bbe2196d",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Have a play!\n",
@@ -4478,11 +4557,11 @@
"cell_type": "markdown",
"id": "9e01e73d",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"# 9. (Optional) Brief introduction to Object-Oriented Programming"
@@ -4492,11 +4571,11 @@
"cell_type": "markdown",
"id": "3627c2ef",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"* Python is an object oriented programming language. Object-Oriented Programming (OOP) is a programming paradigm based on the concept of \"objects\" which can contain:\n",
@@ -4508,11 +4587,11 @@
"cell_type": "markdown",
"id": "8393fae9",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"\n",
@@ -4553,11 +4632,11 @@
"cell_type": "markdown",
"id": "b2a91e2a",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## 2. Encapsulation\n",
@@ -4601,11 +4680,11 @@
"cell_type": "markdown",
"id": "df442469",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## 3. Inheritance\n",
@@ -4644,11 +4723,11 @@
"cell_type": "markdown",
"id": "2cf3958b",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## 4. Polymorphism\n",
@@ -4692,11 +4771,11 @@
"cell_type": "markdown",
"id": "fdb800a8",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## 5. Composition\n",
@@ -4765,7 +4844,11 @@
"cell_type": "markdown",
"id": "129df112",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"---"
@@ -4775,11 +4858,11 @@
"cell_type": "markdown",
"id": "d9c8cd20",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"## Have a play!"
@@ -4789,11 +4872,11 @@
"cell_type": "markdown",
"id": "28e31e47",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": ""
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Plant Sensor API Exercise\n",
@@ -4860,11 +4943,11 @@
"cell_type": "markdown",
"id": "9cb57fee",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "slide"
},
- "tags": [],
- "editable": false
+ "tags": []
},
"source": [
"### Implementation"
@@ -4890,7 +4973,11 @@
"cell_type": "markdown",
"id": "1624a7a4",
"metadata": {
- "editable": false
+ "editable": false,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
},
"source": [
"You can use this to try to use your class. You can comment out functionality, if you have not implemented it yet"
@@ -4926,10 +5013,11 @@
"cell_type": "markdown",
"id": "6522c182",
"metadata": {
+ "editable": false,
"slideshow": {
"slide_type": "fragment"
},
- "editable": false
+ "tags": []
},
"source": [
"---"
@@ -4938,7 +5026,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -4952,7 +5040,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.8"
+ "version": "3.9.6"
}
},
"nbformat": 4,
diff --git a/Intermediate_full.ipynb b/Intermediate_full.ipynb
index a43add4..6556736 100644
--- a/Intermediate_full.ipynb
+++ b/Intermediate_full.ipynb
@@ -4,6 +4,7 @@
"cell_type": "markdown",
"id": "872c6494",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -19,9 +20,11 @@
"cell_type": "markdown",
"id": "2cd478b7",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"Welcome to our ARC course \"Coding with Python\" (Intermediate level).\n",
@@ -45,6 +48,7 @@
"cell_type": "markdown",
"id": "4d58fde4",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -69,6 +73,7 @@
"cell_type": "markdown",
"id": "e673e2cd",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -82,6 +87,7 @@
"cell_type": "markdown",
"id": "85069fdb",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -112,6 +118,7 @@
"cell_type": "markdown",
"id": "153ed362",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -125,6 +132,7 @@
"cell_type": "markdown",
"id": "6ba842c0",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -138,6 +146,7 @@
"cell_type": "markdown",
"id": "b1d20fc9",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -157,6 +166,7 @@
"cell_type": "markdown",
"id": "cdfa9441",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -170,9 +180,11 @@
"cell_type": "markdown",
"id": "3eadf8e2",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"There are plenty of resources to learn Python in the Internet from. These can be recommended by this tutorial for further learning:\n",
@@ -187,6 +199,7 @@
"cell_type": "markdown",
"id": "26d2d446",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -200,6 +213,7 @@
"cell_type": "markdown",
"id": "4e49802b",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -213,9 +227,11 @@
"cell_type": "markdown",
"id": "f99bdeea",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"This section is a (very) brief recap of materials covered in the Beginner Python course:\n",
@@ -234,6 +250,7 @@
"cell_type": "markdown",
"id": "b721c83a",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -256,6 +273,7 @@
}
}
},
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -288,6 +306,7 @@
"cell_type": "markdown",
"id": "e1bd297e",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -319,6 +338,7 @@
"cell_type": "markdown",
"id": "2a63c2dd",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -332,6 +352,7 @@
"cell_type": "markdown",
"id": "7ab44bf2",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -353,9 +374,11 @@
"cell_type": "markdown",
"id": "b68a5bbf",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
- }
+ },
+ "tags": []
},
"source": [
"**Operators** \n",
@@ -369,6 +392,7 @@
"cell_type": "markdown",
"id": "d20cb9b3",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -399,6 +423,7 @@
"cell_type": "markdown",
"id": "8ee98ee9",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -413,6 +438,7 @@
"cell_type": "markdown",
"id": "52819c95",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -426,6 +452,7 @@
"cell_type": "markdown",
"id": "a0966820",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -459,6 +486,7 @@
"cell_type": "markdown",
"id": "aadba414",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -477,6 +505,7 @@
"cell_type": "markdown",
"id": "1f1185e6",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -490,6 +519,7 @@
"cell_type": "markdown",
"id": "179f132a",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -520,6 +550,7 @@
"cell_type": "markdown",
"id": "b61a8691",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -533,6 +564,7 @@
"cell_type": "markdown",
"id": "9c82edee",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -550,6 +582,7 @@
"cell_type": "markdown",
"id": "8bb91a15",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -581,6 +614,7 @@
"cell_type": "markdown",
"id": "efc747a1",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -609,6 +643,7 @@
"cell_type": "markdown",
"id": "b8369a1a",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -638,6 +673,7 @@
"cell_type": "markdown",
"id": "fe6ffaf2",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -667,6 +703,7 @@
"cell_type": "markdown",
"id": "f87cfa0f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -680,6 +717,7 @@
"cell_type": "markdown",
"id": "eae67d96",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -694,6 +732,7 @@
"cell_type": "markdown",
"id": "b38b2739",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -727,9 +766,11 @@
"cell_type": "markdown",
"id": "9303b3ff",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
- }
+ },
+ "tags": []
},
"source": [
"**Conditions** \n",
@@ -758,6 +799,7 @@
"cell_type": "markdown",
"id": "3246bbe1",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -773,6 +815,7 @@
"cell_type": "markdown",
"id": "8c87d3f8",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -814,6 +857,7 @@
"cell_type": "markdown",
"id": "ad3766a1",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -827,6 +871,7 @@
"cell_type": "markdown",
"id": "354a04f1",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -865,6 +910,7 @@
"cell_type": "markdown",
"id": "7e95592e",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -881,6 +927,7 @@
"cell_type": "markdown",
"id": "aae1eed3",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -913,9 +960,11 @@
"cell_type": "markdown",
"id": "50327676",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"We can access the number of elements with `len`"
@@ -941,6 +990,7 @@
"cell_type": "markdown",
"id": "5bda75d6",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -989,9 +1039,11 @@
"cell_type": "markdown",
"id": "7e4b1b25",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"removing a specific element"
@@ -1018,6 +1070,7 @@
"cell_type": "markdown",
"id": "290722a8",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1049,9 +1102,11 @@
"cell_type": "markdown",
"id": "81d1f392",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"we can iterate over the list starting from the back using `reversed`"
@@ -1079,9 +1134,11 @@
"cell_type": "markdown",
"id": "f6fce9a1",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"and `sorted`, sorts the values"
@@ -1109,9 +1166,11 @@
"cell_type": "markdown",
"id": "b26074d7",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"If you want a reversed new list you need to convert the iterator into a list"
@@ -1154,6 +1213,7 @@
"cell_type": "markdown",
"id": "e00e5f84",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1188,6 +1248,7 @@
"cell_type": "markdown",
"id": "8be77c84",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1217,6 +1278,7 @@
"cell_type": "markdown",
"id": "04d87890",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1396,6 +1458,7 @@
"cell_type": "markdown",
"id": "9380a5f8",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -1409,6 +1472,7 @@
"cell_type": "markdown",
"id": "66b0bb86",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1476,6 +1540,7 @@
"cell_type": "markdown",
"id": "4131293a",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -1500,10 +1565,32 @@
"| `S.issuperset(A)` | Returns `True` if A ⊂ S and `False` otherwise |\n"
]
},
+ {
+ "cell_type": "markdown",
+ "id": "459026c3-c595-4478-85a3-c45631330383",
+ "metadata": {
+ "editable": true,
+ "raw_mimetype": "",
+ "slideshow": {
+ "slide_type": "slide"
+ },
+ "tags": []
+ },
+ "source": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
{
"cell_type": "markdown",
"id": "03763f24",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1538,9 +1625,11 @@
"cell_type": "markdown",
"id": "d0501b3f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"### _Example 2_\n",
@@ -1572,6 +1661,7 @@
"cell_type": "markdown",
"id": "245d1725",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1586,6 +1676,7 @@
"cell_type": "markdown",
"id": "8b83afd4",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": null
},
@@ -1696,6 +1787,7 @@
"cell_type": "markdown",
"id": "de3b6a25-6150-4fb7-8cab-e97872f8974e",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1708,7 +1800,13 @@
{
"cell_type": "markdown",
"id": "1e999366-3c44-4fa2-ae18-6825939303df",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"We can use the square brackets to access values from a `dict`"
]
@@ -1733,7 +1831,13 @@
{
"cell_type": "markdown",
"id": "3f3d4fa3-67d1-4d84-ae6c-452a8a436c55",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"Alternatively we can use `get`, which allows do define a default value for a non-existing key"
]
@@ -1760,6 +1864,7 @@
"cell_type": "markdown",
"id": "968a105e-1cc1-45e7-aa30-d19ce18943fe",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1772,7 +1877,13 @@
{
"cell_type": "markdown",
"id": "30dcc6cd-7be8-4ed8-a17c-be18747ec0d6",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"There is three main functions to loop over an dictionary: `keys()`, `values()`, and `items()`."
]
@@ -1835,6 +1946,7 @@
"cell_type": "markdown",
"id": "f73a79d3",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1848,6 +1960,7 @@
"cell_type": "markdown",
"id": "624091b9",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -1863,6 +1976,7 @@
"cell_type": "markdown",
"id": "7271e95a",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -1917,6 +2031,7 @@
"cell_type": "markdown",
"id": "b35c5868",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -1955,6 +2070,7 @@
"cell_type": "markdown",
"id": "70429b28",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2004,6 +2120,7 @@
"cell_type": "markdown",
"id": "36c080f0",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -2038,6 +2155,7 @@
"cell_type": "markdown",
"id": "b424a761",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2051,9 +2169,11 @@
"cell_type": "markdown",
"id": "38cc0279",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
- }
+ },
+ "tags": []
},
"source": [
"### _Exercise 1 (dictionaries)_"
@@ -2063,10 +2183,12 @@
"cell_type": "markdown",
"id": "3f494a2e",
"metadata": {
+ "editable": true,
"lines_to_next_cell": 2,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"1) Create a dictionary of the days in the months of the year.\n",
@@ -2117,6 +2239,7 @@
"cell_type": "markdown",
"id": "1178f7dc",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2130,10 +2253,12 @@
"cell_type": "markdown",
"id": "31e0b17b",
"metadata": {
+ "editable": true,
"jp-MarkdownHeadingCollapsed": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"1. Create a dictionary of several countries and capitals. Think about what's going to be a key and a value.\n",
@@ -2176,6 +2301,7 @@
"cell_type": "markdown",
"id": "07d53abe",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2189,9 +2315,11 @@
"cell_type": "markdown",
"id": "6e83da5f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"Try `items()` method on the dictionary you've created before. Print that out. What kind of data structure does it return?"
@@ -2225,9 +2353,11 @@
"cell_type": "markdown",
"id": "8eb3bbf7",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
- }
+ },
+ "tags": []
},
"source": [
"Speaker notes:\n",
@@ -2240,6 +2370,7 @@
"cell_type": "markdown",
"id": "f2ad81c8",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2253,9 +2384,11 @@
"cell_type": "markdown",
"id": "7c84ec76",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"Given this list: "
@@ -2280,9 +2413,11 @@
"cell_type": "markdown",
"id": "01378c1c",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"Complete these tasks:"
@@ -2321,6 +2456,7 @@
"cell_type": "markdown",
"id": "5bc9a961",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2361,6 +2497,7 @@
"cell_type": "markdown",
"id": "21217bab",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -2395,6 +2532,7 @@
"cell_type": "markdown",
"id": "63274497",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -2443,6 +2581,7 @@
"cell_type": "markdown",
"id": "a6f9d70c-8116-4e65-b719-e3eb2afa7338",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2456,9 +2595,11 @@
"cell_type": "markdown",
"id": "6dd1230b",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
- }
+ },
+ "tags": []
},
"source": [
"#### Conditional Expression\n",
@@ -2491,6 +2632,7 @@
"cell_type": "markdown",
"id": "f77b3d5e",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2504,9 +2646,11 @@
"cell_type": "markdown",
"id": "0002904e",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
- }
+ },
+ "tags": []
},
"source": [
"### `list` comprehensions\n",
@@ -2534,9 +2678,11 @@
"cell_type": "markdown",
"id": "2b2a108f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"You can simplify it using list comprehensions:"
@@ -2564,9 +2710,11 @@
"cell_type": "markdown",
"id": "fba1d4bd",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"We can create a list for only a subset with a condition:"
@@ -2593,7 +2741,13 @@
{
"cell_type": "markdown",
"id": "6bf06bb9-70d0-43e5-9c71-279f038da7c1",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"We can also use ternary expressions in list comprehensions"
]
@@ -2619,6 +2773,7 @@
"cell_type": "markdown",
"id": "23631ac8",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2652,6 +2807,7 @@
"cell_type": "markdown",
"id": "2d4e0235",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2683,6 +2839,7 @@
"cell_type": "markdown",
"id": "f8beaad4",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2721,6 +2878,7 @@
"cell_type": "markdown",
"id": "2092afdb",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2755,7 +2913,13 @@
{
"cell_type": "markdown",
"id": "13a0e98b",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"# **Part II**"
]
@@ -2764,6 +2928,7 @@
"cell_type": "markdown",
"id": "6e54d68e",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2789,6 +2954,7 @@
"cell_type": "markdown",
"id": "b70b9fb0",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -2809,6 +2975,7 @@
"cell_type": "markdown",
"id": "e4ffd520",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2845,6 +3012,7 @@
"cell_type": "markdown",
"id": "8986cf90",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -2861,6 +3029,7 @@
"cell_type": "markdown",
"id": "d26956f3",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2914,6 +3083,7 @@
"cell_type": "markdown",
"id": "7b376a1f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -2930,6 +3100,7 @@
"cell_type": "markdown",
"id": "44d08a7e",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -2971,6 +3142,7 @@
"cell_type": "markdown",
"id": "8903db8d",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -2986,6 +3158,7 @@
"cell_type": "markdown",
"id": "6011ded7",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3058,6 +3231,7 @@
"cell_type": "markdown",
"id": "e792e5a8",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -3073,6 +3247,7 @@
"cell_type": "markdown",
"id": "bbc81d0f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3095,6 +3270,7 @@
"cell_type": "markdown",
"id": "67e040dc",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3108,6 +3284,7 @@
"cell_type": "markdown",
"id": "ff630616",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -3161,6 +3338,7 @@
"cell_type": "markdown",
"id": "ecad0562",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3175,6 +3353,7 @@
"cell_type": "markdown",
"id": "dc4b7323-f4f7-4b51-b6da-f651abf5029e",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -3191,6 +3370,7 @@
"cell_type": "markdown",
"id": "9e1c43a8",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3204,6 +3384,7 @@
"cell_type": "markdown",
"id": "db90a278",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -3305,6 +3486,7 @@
"cell_type": "markdown",
"id": "04bec6e4-8e4d-4899-a3c3-c9abd332f275",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3339,6 +3521,7 @@
"cell_type": "markdown",
"id": "36f46ead-b9a1-481f-8798-edbfc58b5504",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -3352,6 +3535,7 @@
"cell_type": "markdown",
"id": "ccbef34a-9226-4735-859d-378640ee9cc7",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -3366,6 +3550,7 @@
"cell_type": "markdown",
"id": "fbf736e6-8dfb-4a00-86fb-5e71de650e9f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -3397,6 +3582,7 @@
"cell_type": "markdown",
"id": "d1cc0855",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3441,9 +3627,11 @@
"cell_type": "markdown",
"id": "8e33b8e3",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"---"
@@ -3453,6 +3641,7 @@
"cell_type": "markdown",
"id": "2d186e61-b776-483a-a6b9-0890af512e80",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3466,6 +3655,7 @@
"cell_type": "markdown",
"id": "e34aedb6",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3479,9 +3669,11 @@
"cell_type": "markdown",
"id": "ffef8f84",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"In Python, strings are objects, and objects have **methods** - functions that belong to and operate on that object.\n",
@@ -3519,6 +3711,7 @@
"cell_type": "markdown",
"id": "c9016a2e-dee1-4030-a1a0-8e519a84be6f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -3536,6 +3729,7 @@
"cell_type": "markdown",
"id": "00e14678-81a2-4509-815a-53f9f2fdb332",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3549,9 +3743,11 @@
"cell_type": "markdown",
"id": "a4fa9b5b",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"These methods help you locate substrings within a string, returning their position or checking for their presence:\n",
@@ -3595,9 +3791,11 @@
"cell_type": "markdown",
"id": "714fc569",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
- }
+ },
+ "tags": []
},
"source": [
"Speaker notes:\n",
@@ -3609,6 +3807,7 @@
"cell_type": "markdown",
"id": "40d4c38b-9a07-4e49-a9b3-003dd13f129d",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3622,6 +3821,7 @@
"cell_type": "markdown",
"id": "7b5ac28b-5cfb-4c43-bf54-093c240cbe2b",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -3637,9 +3837,11 @@
"cell_type": "markdown",
"id": "6ac1c80f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
- }
+ },
+ "tags": []
},
"source": [
"Speaker notes:\n",
@@ -3687,6 +3889,7 @@
"cell_type": "markdown",
"id": "e040bf97-a6bd-493e-b047-2041b5a99131",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -3716,6 +3919,7 @@
"cell_type": "markdown",
"id": "fe3ce02d-08bd-4c52-a935-d27b843dde39",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3729,9 +3933,11 @@
"cell_type": "markdown",
"id": "80b12b8b",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"These methods create modified versions of strings by replacing content, changing case, or removing unwanted characters. _**Remember**: strings are immutable, so these methods always return a new string._\n",
@@ -3800,6 +4006,7 @@
"cell_type": "markdown",
"id": "6cf8076f-8f50-49ae-b558-39336c323880",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3813,9 +4020,11 @@
"cell_type": "markdown",
"id": "71a4546c",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
- }
+ },
+ "tags": []
},
"source": [
"These methods allow you to break strings apart into lists of substrings, or combine lists of strings into a single string. They're particularly useful for parsing text data or formatting output:\n",
@@ -3848,6 +4057,7 @@
"cell_type": "markdown",
"id": "0b649711-58b1-4174-9277-2a921e6a3b6f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -3893,6 +4103,7 @@
"cell_type": "markdown",
"id": "a965b5d9-59f4-4ed5-b7e9-89f5f0bcf60f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -3906,6 +4117,7 @@
"cell_type": "markdown",
"id": "a2cd1c9a-967b-4f4b-8153-c4f55d50b377",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -3985,6 +4197,7 @@
"cell_type": "markdown",
"id": "9fb3a479-cddd-4b00-8e5d-88194c82f9ed",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -4063,7 +4276,13 @@
{
"cell_type": "markdown",
"id": "586e5a27",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"# Thank You for Attending! 👋\n",
"\n",
@@ -4082,7 +4301,13 @@
{
"cell_type": "markdown",
"id": "25f9ad8e",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"# **Optional Topics**"
]
@@ -4091,6 +4316,7 @@
"cell_type": "markdown",
"id": "995ee9e7-cde0-483e-84c9-9df1b3238384",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4104,6 +4330,7 @@
"cell_type": "markdown",
"id": "b14a6818",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4117,6 +4344,7 @@
"cell_type": "markdown",
"id": "012efab2",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -4130,6 +4358,7 @@
"cell_type": "markdown",
"id": "eb000d98",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -4159,6 +4388,7 @@
"cell_type": "markdown",
"id": "4e16a864",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4172,6 +4402,7 @@
"cell_type": "markdown",
"id": "17798548",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4310,6 +4541,7 @@
"cell_type": "markdown",
"id": "4e9801e0",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4324,6 +4556,7 @@
"cell_type": "markdown",
"id": "a306f3cb",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -4366,6 +4599,7 @@
"cell_type": "markdown",
"id": "3a9c7b35",
"metadata": {
+ "editable": true,
"jp-MarkdownHeadingCollapsed": true,
"slideshow": {
"slide_type": "slide"
@@ -4423,6 +4657,7 @@
"cell_type": "markdown",
"id": "6ee8121a",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -4436,6 +4671,7 @@
"cell_type": "markdown",
"id": "a00f019b",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4459,6 +4695,7 @@
"cell_type": "markdown",
"id": "dd9284d3-b9cc-43b1-a369-731c3e09351e",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4471,7 +4708,13 @@
{
"cell_type": "markdown",
"id": "9bdac1cc-4bdc-4a40-b4d7-25e24edc611f",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"Create a file called `calculator.py`:"
]
@@ -4503,6 +4746,7 @@
"cell_type": "markdown",
"id": "a547c272-803a-46e8-af1f-00600ad11e92",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -4535,6 +4779,7 @@
"cell_type": "markdown",
"id": "47dd6a0c",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4553,6 +4798,7 @@
"cell_type": "markdown",
"id": "7f4123ae",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
},
@@ -4576,6 +4822,7 @@
"cell_type": "markdown",
"id": "bbe2196d",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4730,6 +4977,7 @@
"cell_type": "markdown",
"id": "9e01e73d",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4743,6 +4991,7 @@
"cell_type": "markdown",
"id": "3627c2ef",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -4758,6 +5007,7 @@
"cell_type": "markdown",
"id": "8393fae9",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4802,6 +5052,7 @@
"cell_type": "markdown",
"id": "d9003b8b",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -4820,6 +5071,7 @@
"cell_type": "markdown",
"id": "b2a91e2a",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4867,6 +5119,7 @@
"cell_type": "markdown",
"id": "915e7f40",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -4883,6 +5136,7 @@
"cell_type": "markdown",
"id": "df442469",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4925,6 +5179,7 @@
"cell_type": "markdown",
"id": "206d9ee0",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -4940,6 +5195,7 @@
"cell_type": "markdown",
"id": "2cf3958b",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -4987,6 +5243,7 @@
"cell_type": "markdown",
"id": "5385bec2",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -5007,6 +5264,7 @@
"cell_type": "markdown",
"id": "fdb800a8",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -5079,6 +5337,7 @@
"cell_type": "markdown",
"id": "7ea0b8f0",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -5096,7 +5355,13 @@
{
"cell_type": "markdown",
"id": "129df112",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"---"
]
@@ -5105,6 +5370,7 @@
"cell_type": "markdown",
"id": "d9c8cd20",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -5118,6 +5384,7 @@
"cell_type": "markdown",
"id": "4858e58f",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "notes"
},
@@ -5133,6 +5400,7 @@
"cell_type": "markdown",
"id": "28e31e47",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": ""
},
@@ -5203,6 +5471,7 @@
"cell_type": "markdown",
"id": "9cb57fee",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "slide"
},
@@ -5280,7 +5549,13 @@
{
"cell_type": "markdown",
"id": "1624a7a4",
- "metadata": {},
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
"source": [
"You can use this to try to use your class. You can comment out functionality, if you have not implemented it yet"
]
@@ -5315,9 +5590,11 @@
"cell_type": "markdown",
"id": "6522c182",
"metadata": {
+ "editable": true,
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": []
},
"source": [
"---"
@@ -5326,7 +5603,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -5340,7 +5617,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.8"
+ "version": "3.9.6"
}
},
"nbformat": 4,
diff --git a/img/venn_diagrams/a-b_venn.png b/img/venn_diagrams/a-b_venn.png
new file mode 100644
index 0000000..5dfd506
Binary files /dev/null and b/img/venn_diagrams/a-b_venn.png differ
diff --git a/img/venn_diagrams/base_venn.png b/img/venn_diagrams/base_venn.png
new file mode 100644
index 0000000..85c8def
Binary files /dev/null and b/img/venn_diagrams/base_venn.png differ
diff --git a/img/venn_diagrams/intersection_venn.png b/img/venn_diagrams/intersection_venn.png
new file mode 100644
index 0000000..0debf27
Binary files /dev/null and b/img/venn_diagrams/intersection_venn.png differ
diff --git a/img/venn_diagrams/super_sub_sets.png b/img/venn_diagrams/super_sub_sets.png
new file mode 100644
index 0000000..b9ac748
Binary files /dev/null and b/img/venn_diagrams/super_sub_sets.png differ
diff --git a/img/venn_diagrams/symm_diff_venn.png b/img/venn_diagrams/symm_diff_venn.png
new file mode 100644
index 0000000..ff4f451
Binary files /dev/null and b/img/venn_diagrams/symm_diff_venn.png differ
diff --git a/img/venn_diagrams/union_venn.png b/img/venn_diagrams/union_venn.png
new file mode 100644
index 0000000..9ffb6a9
Binary files /dev/null and b/img/venn_diagrams/union_venn.png differ