From 09adb43773f59e01314354c977f66ce7f3bbfffe Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 21 May 2026 15:25:10 +0100 Subject: [PATCH] Adds Venn diagrams for sets. --- Intermediate.ipynb | 662 ++++++++++++++---------- Intermediate_full.ipynb | 361 +++++++++++-- img/venn_diagrams/a-b_venn.png | Bin 0 -> 14014 bytes img/venn_diagrams/base_venn.png | Bin 0 -> 10551 bytes img/venn_diagrams/intersection_venn.png | Bin 0 -> 13742 bytes img/venn_diagrams/super_sub_sets.png | Bin 0 -> 11706 bytes img/venn_diagrams/symm_diff_venn.png | Bin 0 -> 37880 bytes img/venn_diagrams/union_venn.png | Bin 0 -> 12692 bytes 8 files changed, 694 insertions(+), 329 deletions(-) create mode 100644 img/venn_diagrams/a-b_venn.png create mode 100644 img/venn_diagrams/base_venn.png create mode 100644 img/venn_diagrams/intersection_venn.png create mode 100644 img/venn_diagrams/super_sub_sets.png create mode 100644 img/venn_diagrams/symm_diff_venn.png create mode 100644 img/venn_diagrams/union_venn.png 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": [ + "![Base Venn Diagram](img/venn_diagrams/base_venn.png)\n", + "![Union Venn Diagram](img/venn_diagrams/union_venn.png)\n", + "![Intersection Venn Diagram](img/venn_diagrams/intersection_venn.png)\n", + "![Difference Venn Diagram](img/venn_diagrams/a-b_venn.png)\n", + "![Symmetric Difference Venn Diagram](img/venn_diagrams/symm_diff_venn.png)\n", + "![Super/subset Venn Diagram](img/venn_diagrams/super_sub_sets.png)\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": [ + "![Base Venn Diagram](img/venn_diagrams/base_venn.png)\n", + "![Union Venn Diagram](img/venn_diagrams/union_venn.png)\n", + "![Intersection Venn Diagram](img/venn_diagrams/intersection_venn.png)\n", + "![Difference Venn Diagram](img/venn_diagrams/a-b_venn.png)\n", + "![Symmetric Difference Venn Diagram](img/venn_diagrams/symm_diff_venn.png)\n", + "![Super/subset Venn Diagram](img/venn_diagrams/super_sub_sets.png)\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 0000000000000000000000000000000000000000..5dfd506cbabd672ba49db564645f30a4bdfaa9b2 GIT binary patch literal 14014 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 literal 0 HcmV?d00001 diff --git a/img/venn_diagrams/base_venn.png b/img/venn_diagrams/base_venn.png new file mode 100644 index 0000000000000000000000000000000000000000..85c8def01372d43802127ac293a9f92fa92a447c GIT binary patch literal 10551 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 Oijus#T-^tYi2ng+ihtDr literal 0 HcmV?d00001 diff --git a/img/venn_diagrams/intersection_venn.png b/img/venn_diagrams/intersection_venn.png new file mode 100644 index 0000000000000000000000000000000000000000..0debf273ef804ea2eb02c83706082b10794e4058 GIT binary patch literal 13742 zcmc(_Wl$W=+b_I9!i|LxEI@z+f@{z~U~ve#I4n+ryIWWY1eai8aTa%Xcelk!u;4CX zS!{uD_WnQhoO<66r|S7|s?OBZbobTQ@3QHc>Ard*)KujO@u=_s005!FM;Q$O022lP zJlXgM6HQt3MlGO=*PlOXr~m-IOaQ>wU;qGxCVkxp06cgAfJ0LNKqLhKpm5G;RTl*S zFkY!CYso%7KI->h{SVKpNxA>w`E%SlZKP^$+`e}#P=DZha@-w#of&sVUq{Eh|D*1@ zeKh>v%D{E)81!UP9bGXPyfGNKse;2+C(O}J!;y#W34^Zx&oMCO|6i@>?0T}R7Yn6Ufb^#AHbH>bv3yT{Nm`JW!M6HaK<;-vlQq?&&Je{35IOoW7lzs9YrdwL4HC(t)5 zyJxDtuP(0lXLWzox8C)lpkc~JUkePzeXZoqh#7nONX@SW5&ggSHnF#EK$ds zUVOxS5T3~Im9L-q_(XUGM0nq`^YDo9@XX&nZTbHJ9GuK;EPejZfc*SUY&3x7e`|2JajMc1{O@_V1lW1l zdDf$6NYDt9|3>IoxVqUmIReyVJxy!l=?xo!&i6S7H!S{i=$exfRs-m-X5rvffOq!M#z=$#u&titFIfo`#B+3laAOaWk6x{{N8Y- z(Vs_5Op31x>M|d9JA^NBxy@e`ft;2yh}K$CAp8J8ucG+qN8O8QW;s6V3?Ow+n-xX@ z27sv>_BNR+W)LIE?D?2|7znBR6yATp$KzzzpmSpakZ^<+AGGq$%+IVpW;q*3$DZb1 z^9CqTf_)c)Qkx~$2+$fM))nzpw8Upu@teKvl*BD_XZK$DV4?${ygrezmbY8XW$}(> zn;OLaC@w}JCzhY)z}{nG0tPor zSU!UO3ErbDcX*5#xQYu!@W%S=%wx896Qb-f;wZR}ta`@E2(^FN*WlK-bkkmuop7@7 z(oKC0#P2r02|eh2{iPV}6!Ofl>)y@rIZ*|-i`{&{egWT2gEdE{6ZTUs0EyHRbFd`T ztkfh$ubwoY=Z3`mW@bSmAPbu0enXB9G1Ir*>)Ys3(d0Z3){)YZK@NFJlOk{LtAD%9 zg%fO+uPE{k`S2x�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∈tiAx=`?ka1A?f=z)u!(Y}1 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 a>|cGd=biWEkrT`qfWXt$&t;ucLK6Vhi9_)K literal 0 HcmV?d00001 diff --git a/img/venn_diagrams/union_venn.png b/img/venn_diagrams/union_venn.png new file mode 100644 index 0000000000000000000000000000000000000000..9ffb6a9699df26d5c45080f640ad3af2860dbbcb GIT binary patch literal 12692 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 literal 0 HcmV?d00001