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 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