From daa59d0f01cb3a48d1cd4be14a4147ed88f03159 Mon Sep 17 00:00:00 2001 From: jrasero Date: Tue, 8 Oct 2024 10:06:34 -0400 Subject: [PATCH] Update documentation --- .../chapters/module-2/In-class_100324.ipynb | 95 +++ .../module-2/In-class_100324_sols.ipynb | 247 ++++++ .../module-3/031-errors_and_exceptions.ipynb | 8 +- _sources/chapters/module-3/032-classes.ipynb | 722 ++++++++++++++---- chapters/module-2/In-class_100324.html | 482 ++++++++++++ chapters/module-2/In-class_100324_sols.html | 600 +++++++++++++++ .../module-3/031-errors_and_exceptions.html | 19 +- chapters/module-3/032-classes.html | 488 +++++++++--- genindex.html | 1 + index.html | 1 + objects.inv | Bin 1059 -> 1080 bytes reports/chapters/module-3/032-classes.err.log | 28 + search.html | 1 + searchindex.js | 2 +- 14 files changed, 2440 insertions(+), 254 deletions(-) create mode 100644 _sources/chapters/module-2/In-class_100324.ipynb create mode 100644 _sources/chapters/module-2/In-class_100324_sols.ipynb create mode 100644 chapters/module-2/In-class_100324.html create mode 100644 chapters/module-2/In-class_100324_sols.html create mode 100644 reports/chapters/module-3/032-classes.err.log diff --git a/_sources/chapters/module-2/In-class_100324.ipynb b/_sources/chapters/module-2/In-class_100324.ipynb new file mode 100644 index 0000000..be4804d --- /dev/null +++ b/_sources/chapters/module-2/In-class_100324.ipynb @@ -0,0 +1,95 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6b64190e-5dce-4574-ad0d-ddb5a5a2cc00", + "metadata": {}, + "source": [ + "## Instructions \n", + "* Complete Jupyter Notebook for tasks. Clearly show relevant work.\n", + "\n", + "* Before beginning to fill in the notebook, make sure you have written down your name in the first cell, as well as of any collaborators in case you have worked in groups.\n", + "\n", + "* Before you turn this problem in, make sure everything runs as expected. First, **restart the kernel** (in the menubar, select Kernel $\\rightarrow$ Restart) and then **run all cells** (in the menubar, select Cell $\\rightarrow$ Run All).\n", + "\n", + "* Make sure your changes have been changed and when ready, submit the jupyter notebook through Canvas. " + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "91980179-e320-4362-8941-3ef911ce7671", + "metadata": {}, + "outputs": [], + "source": [ + "NAME = \"\"\n", + "COLLABORATORS = \"\"" + ] + }, + { + "cell_type": "markdown", + "id": "332218e0-c6bc-4c48-9fc6-7bf2294a273b", + "metadata": {}, + "source": [ + "---" + ] + }, + { + "cell_type": "markdown", + "id": "f08804f8-a3cb-4f48-82b2-068bb2c347ea", + "metadata": {}, + "source": [ + "**1. The following function aims at returning whether a given list of numbers contains at least one element divisible by 7, but it fails due to a bug. You can test this failing behaviour by passing, for example, the list: [10, 7, 13].**\n", + "\n", + "**Redefine the function correcting the bug. Test that it behaves correctly with several examples. In addition, in a separate markdown cell, explain why the function was failing. (3 points)**" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "ee7b6179-eca2-4fae-89b6-c2bc5db5863e", + "metadata": {}, + "outputs": [], + "source": [ + "def has_atleast_one_seven(nums):\n", + " \"\"\"Return whether the given list of numbers is lucky. A lucky list contains\n", + " at least one number divisible by 7.\n", + " \"\"\"\n", + " for num in nums:\n", + " if num % 7 == 0:\n", + " return True\n", + " else:\n", + " return False" + ] + }, + { + "cell_type": "markdown", + "id": "70fed6c8-c03a-4b5d-ba84-20f33a4c9870", + "metadata": {}, + "source": [ + "**2. Using a for loop and and if statements, print all the numbers between 10 and 1000 (including both sides) that are divisible by 7 and the sum of their digits is greater than 10, but only if the number itself is also odd. (2 points)**" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_sources/chapters/module-2/In-class_100324_sols.ipynb b/_sources/chapters/module-2/In-class_100324_sols.ipynb new file mode 100644 index 0000000..8555626 --- /dev/null +++ b/_sources/chapters/module-2/In-class_100324_sols.ipynb @@ -0,0 +1,247 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6b64190e-5dce-4574-ad0d-ddb5a5a2cc00", + "metadata": {}, + "source": [ + "## Instructions \n", + "* Complete Jupyter Notebook for tasks. Clearly show relevant work.\n", + "\n", + "* Before beginning to fill in the notebook, make sure you have written down your name in the first cell, as well as of any collaborators in case you have worked in groups.\n", + "\n", + "* Before you turn this problem in, make sure everything runs as expected. First, **restart the kernel** (in the menubar, select Kernel $\\rightarrow$ Restart) and then **run all cells** (in the menubar, select Cell $\\rightarrow$ Run All).\n", + "\n", + "* Make sure your changes have been changed and when ready, submit the jupyter notebook through Canvas. " + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "91980179-e320-4362-8941-3ef911ce7671", + "metadata": {}, + "outputs": [], + "source": [ + "NAME = \"\"\n", + "COLLABORATORS = \"\"" + ] + }, + { + "cell_type": "markdown", + "id": "332218e0-c6bc-4c48-9fc6-7bf2294a273b", + "metadata": {}, + "source": [ + "---" + ] + }, + { + "cell_type": "markdown", + "id": "f08804f8-a3cb-4f48-82b2-068bb2c347ea", + "metadata": {}, + "source": [ + "**1. The following function aims at returning whether a given list of numbers contains at least one element divisible by 7, but it fails due to a bug. You can test this failing behaviour by passing, for example, the list: [10, 7, 13].**\n", + "\n", + "**Redefine the function correcting the bug. Test that it behaves correctly with several examples. In addition, in a separate markdown cell, explain why the function was failing. (3 points)**" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "ee7b6179-eca2-4fae-89b6-c2bc5db5863e", + "metadata": {}, + "outputs": [], + "source": [ + "def has_atleast_one_seven(nums):\n", + " \"\"\"Return whether the given list of numbers is lucky. A lucky list contains\n", + " at least one number divisible by 7.\n", + " \"\"\"\n", + " for num in nums:\n", + " if num % 7 == 0:\n", + " return True\n", + " else:\n", + " return False" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e9c98609-e356-4f40-b1e3-b81488101022", + "metadata": {}, + "outputs": [], + "source": [ + "# Solution\n", + "def has_atleast_one_seven(nums):\n", + " \"\"\"Return whether the given list of numbers is lucky. A lucky list contains\n", + " at least one number divisible by 7.\n", + " \"\"\"\n", + " for num in nums:\n", + " if num % 7 == 0:\n", + " return True\n", + "\n", + " return False" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "df21433c-eaec-4448-93b4-bf3fd6ce4719", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "has_atleast_one_seven([10,1,13,1,1,1,1,6,7])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "2cf67aef-1518-49c4-97d2-dc888289945a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "has_atleast_one_seven([10,8,13,1,4,5,6,81,6])" + ] + }, + { + "cell_type": "markdown", + "id": "15b49768-ee34-4350-9342-73a27876f36c", + "metadata": {}, + "source": [ + "The bug was that in the original function, only one iteration was performed, because of both return in the if/else, which made you exit the function after the first iteration. We only need to exit the function early if we happen to hit an element divisible by 7. If there is not, we should carry on looping the list until the end. If that happens, that's becaus we don't have any element divisible by 7, and the function should return a False." + ] + }, + { + "cell_type": "markdown", + "id": "70fed6c8-c03a-4b5d-ba84-20f33a4c9870", + "metadata": {}, + "source": [ + "**2. Using a for loop and and if statements, print all the numbers between 10 and 1000 (including both sides) that are divisible by 7 and the sum of their digits is greater than 10, but only if the number itself is also odd. (2 points)**" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4480d428-ee6e-4629-b298-e0001548828e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "49\n", + "77\n", + "119\n", + "147\n", + "175\n", + "189\n", + "245\n", + "259\n", + "273\n", + "287\n", + "329\n", + "357\n", + "371\n", + "385\n", + "399\n", + "427\n", + "455\n", + "469\n", + "483\n", + "497\n", + "525\n", + "539\n", + "553\n", + "567\n", + "581\n", + "595\n", + "609\n", + "623\n", + "637\n", + "651\n", + "665\n", + "679\n", + "693\n", + "707\n", + "735\n", + "749\n", + "763\n", + "777\n", + "791\n", + "805\n", + "819\n", + "833\n", + "847\n", + "861\n", + "875\n", + "889\n", + "903\n", + "917\n", + "931\n", + "945\n", + "959\n", + "973\n", + "987\n" + ] + } + ], + "source": [ + "numbers = range(10, 1001) # You have to use 1001 here to include 1000\n", + "\n", + "for num in numbers:\n", + " if num % 7 == 0: # This condition checks if the number is divisible by 7\n", + " num_as_str = str(num) # convert the number to string and store this info in a new variable\n", + "\n", + " # This block now calculates the sum of the digits of num as a string \n", + " sum_digits = 0\n", + " for s in num_as_str: # This loop through its individual digit of num and update the sumation adding the iterated digit\n", + " sum_digits += int(s) # we have to convert the character back to an integer. \n", + "\n", + " # Now add a condition to print num, only if the sum of digits is greater than 10 and num is odd, i.e, not even.\n", + " if (sum_digits > 10) and (num % 2 != 0):\n", + " print(num)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_sources/chapters/module-3/031-errors_and_exceptions.ipynb b/_sources/chapters/module-3/031-errors_and_exceptions.ipynb index a4b1819..d1d6751 100644 --- a/_sources/chapters/module-3/031-errors_and_exceptions.ipynb +++ b/_sources/chapters/module-3/031-errors_and_exceptions.ipynb @@ -730,10 +730,10 @@ "\n", "Write a function check_positive_number(num) that:\n", "\n", - "1 - Tries to check if a number is positive.\n", - "2 - If the number is negative, raise a ValueError with the message 'Number must be positive'.\n", - "3 - If no exception occurs, print 'The number is positive' inside the else block.\n", - "4 - Ensure that, regardless of whether an exception occurs, a final message 'Check complete' is printed using a finally block\n", + "1 - Tries to check if a number is positive. \n", + "2 - If the number is negative, raise a ValueError with the message 'Number must be positive'. \n", + "3 - If no exception occurs, print 'The number is positive' inside the else block. \n", + "4 - Ensure that, regardless of whether an exception occurs, a final message 'Check complete' is printed using a finally block.\n", "\n", "```" ] diff --git a/_sources/chapters/module-3/032-classes.ipynb b/_sources/chapters/module-3/032-classes.ipynb index 81798cd..300da3e 100644 --- a/_sources/chapters/module-3/032-classes.ipynb +++ b/_sources/chapters/module-3/032-classes.ipynb @@ -5,17 +5,33 @@ "id": "1d579d43", "metadata": {}, "source": [ - "# Object-Oriented Programming (OOP)\n", + "# Introduction to object-oriented programming (OOP)\n", + "\n", + "What you will learn in this lesson:\n", + "\n", + "- Classes and objects\n", + "- Attributes and methods\n", + "- Inheritance" + ] + }, + { + "cell_type": "markdown", + "id": "b19c96a2-603f-4fef-992d-cf5105e65cba", + "metadata": {}, + "source": [ + "## Introduction \n", "\n", "Python is an **object-oriented** programming (OOP) language. The object-oriented programming is kind of paradigm that helps you group state (attributes) and behavior (methods) together in handy packets of functionality. It also allows for useful specialized mechanisms such as inheritance.\n", "\n", "The fact that python is an OOP language does not mean you are force to follow this paradigm (unlike some other OOP languages). You can still do procedural programming as we have learned so far, with modules and functions. In Python, you can select the paradigm that fits best for your your purposes, or even mix paradigms.\n", "\n", - "- Classes and objects\n", - "- Attributes and methods\n", - "- Inheritance\n", - "- Polymorphism\n", - "- Encapsulation" + "OOP is about grouping DATA with the FUNCTIONS that manipulate that data and hiding HOW it manipulates it so you can MODIFY the behavior through INHERITANCE.\n", + "\n", + "Advantages of OOP programming:\n", + "\n", + "- **MAINTAINABILITY**. Object-oriented programming methods make code more maintainable. Identifying the source of errors is easier because objects are self-contained.\n", + "- **REUSABILITY**. Because objects contain both data and methods that act on data, objects can be thought of as self-contained black boxes. This feature makes it easy to reuse code in new systems.Messages provide a predefined interface to an object's data and functionality. With this interface, an object can be used in any context.\n", + "- **SCALABILITY**. Object-oriented programs are also scalable. As an object's interface provides a road map for reusing the object in new software, and provides all the information needed to replace the object without affecting other code. This way aging code can be replaced with faster algorithms and newer technology." ] }, { @@ -23,125 +39,228 @@ "id": "c61267a7", "metadata": {}, "source": [ - "## 1. Classes and Objects\n", + "## Classes and Objects\n", "\n", - "**Classes** help describe/model data structures, or collections of functions centered on a particular set of tasks related to a particular type of data. A class is much like a template or schema. Classes may, but does not have to, take parameters.\n", + "
\n", + "Everything defined in Python is an object. \n", + "
\n", "\n", - "- **Attributes** - values/fields specific to each instance of a class.\n", - "- **Methods** - functions available within and specific to a class. Methods may consume attributes or other parameters.\n", - "- **Constructors** - the attribute structure/default values of a class.\n", + "You've heard this phrase quite a few times throughout the course. But what is an object?\n", "\n", - "**Instances** / **Objects** are actual, concrete implementations of a class with specific values.\n", + "> An **object** is like a special kind of data structure (like list, dictionaries, etc) that not only stores data (**attributes**) but also has functions (**methods**) that can do things with that data.\n", "\n", - "> \"OO is about grouping DATA with the FUNCTIONS that manipulate that data and hiding HOW it manipulates it so you can MODIFY the behavior through INHERITANCE.\"\n", + "Objects arise from **classes**. What is a class?\n", "\n", - "Advantages of OOP programming:\n", + "> **Classes** are much like a template or scheme for creating objects. It defines what data (**attributes**) the objects will store and what actions (**methods**) they can perform. " + ] + }, + { + "cell_type": "markdown", + "id": "358dca66-2d7b-423a-872b-fe95f3aa79c6", + "metadata": {}, + "source": [ + "### Defining a class" + ] + }, + { + "cell_type": "markdown", + "id": "2f6c3f05-ccf1-44f1-8dad-ab2893df86bb", + "metadata": {}, + "source": [ + "The syntax to define a class is the following: \n", "\n", - "- **MAINTAINABILITY** Object-oriented programming methods make code more maintainable. Identifying the source of errors is easier because objects are self-contained.\n", - "- **REUSABILITY** Because objects contain both data and methods that act on data, objects can be thought of as self-contained black boxes. This feature makes it easy to reuse code in new systems.Messages provide a predefined interface to an object's data and functionality. With this interface, an object can be used in any context.\n", - "- **SCALABILITY** Object-oriented programs are also scalable. As an object's interface provides a road map for reusing the object in new software, and provides all the information needed to replace the object without affecting other code. This way aging code can be replaced with faster algorithms and newer technology." + "
class NameOfTheClass(object):\n",
+    "    Attributes\n",
+    "    ...\n",
+    "    ...\n",
+    "    Methods\n",
+    "    
" ] }, { "cell_type": "markdown", - "id": "3df98fab", + "id": "e0ed8573-f700-47b1-b96b-1291bdb775ce", "metadata": {}, "source": [ - "You can think of classes as a kind of data structure (e.g.), which can store information:" + "Let's break this syntax down a bit:\n", + "\n", + "- We start with the keyword `class` to let Python now we are going to define a class.\n", + "- Then we provide a name for the class. (Note: Pythonists like to use CamelCase naming convention for this...)\n", + "- A parenthesis specifying the **inheritance** of the class. Here we used `object`, which is the most basic class that all other classes inherit from. If no inheritence is specified, stick with `object`. We will come to inheritance later.\n", + "- We end the header of the definition with a `:`, to specify that whatever comes next belongs to the class.\n", + "- After that, in an indented block, we include the attributes and methods of the class." ] }, { "cell_type": "code", - "execution_count": 104, - "id": "131b3ab7", + "execution_count": 1, + "id": "b19ad091-2d1c-40ca-8bc4-d8c4d8f8c5f5", "metadata": {}, "outputs": [], "source": [ + "# Example\n", "class Animal(object):\n", - " age = 10 #years\n", - " height = 0.8 #cm\n", - " origin = \"Africa\"\n", - " sex = \"female\"\n", - " name = \"Bob\"\n", - " wild = True" + " pass" ] }, { "cell_type": "markdown", - "id": "a045b7ae", + "id": "78e36208-a0f8-4018-a7eb-b4e6e4063299", "metadata": {}, "source": [ - "To be able to use a class, we have to instantiate it, i.e. create an object of it. **Think of a class as the RECIPE to create a particular object.**" + "**Instances** / **Objects** are actual, concrete implementations of a class with specific values." ] }, { "cell_type": "code", - "execution_count": 105, - "id": "e1cb6c1c", + "execution_count": 2, + "id": "0ea12afa-44e1-42f7-967b-c21d9a0ba715", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "my_animal = Animal() # Creating a Animal object\n", + "print(type(my_animal)) # Show that it's a Animal object" + ] + }, + { + "cell_type": "markdown", + "id": "7dde44cc-1045-4a58-9275-c247db0467c1", + "metadata": {}, + "source": [ + "### Attributes and methods" + ] + }, + { + "cell_type": "markdown", + "id": "1fd07c8f-4e37-44a1-8abd-558339cb8308", + "metadata": {}, + "source": [ + "What are **attributes**?\n", + "\n", + "> **Attributes** are the values/fields specific to each instance (or object) of a class." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "fbfa319d-7d66-4d47-9ebb-d7df89601c4c", "metadata": {}, "outputs": [], "source": [ - "my_animal = Animal()" + "class Animal(object):\n", + " age = 11 #years\n", + " weight = 5 # kgs\n", + " name = \"Kenny\"\n", + " wild = False" + ] + }, + { + "cell_type": "markdown", + "id": "4d15e624-e8db-4f21-b5ce-a1ad6033c37e", + "metadata": {}, + "source": [ + "Therefore, you may think of classes as a kind of data structure (e.g. Dictionaries) to store information. \n", + "\n", + "Once you define an object, you can access its attributes using append a `.` and calling its specific attribute:" ] }, { "cell_type": "code", - "execution_count": 106, - "id": "ef1a56a1", + "execution_count": 4, + "id": "ac31ea98-47e6-43d8-80a0-333c3eb791fb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "10\n", - "Africa\n" + "11\n", + "Kenny\n" ] } ], "source": [ + "my_animal = Animal() # Creating a Animal object\n", + "\n", "print(my_animal.age)\n", - "print(my_animal.origin)" + "print(my_animal.name)" ] }, { "cell_type": "markdown", - "id": "98244111", + "id": "3ecd0d7c-964f-41e3-a44b-c5b2fa417ea4", "metadata": {}, "source": [ - "The difference with data structures is that class can implement methods, which can perform an operation:" + "
\n", + "Important:. You need to create an object in order to access its attributes (and methods, as explained below). Until then, you only have a general design manual (the class), not a specific object! Think of creating an object as defining a new type of data, like integers, floats, lists or dictionaries.\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "bd8d7453-a992-4b7b-855c-d267adf9d18a", + "metadata": {}, + "source": [ + "And what are **methods**?\n", + "\n", + "> **Methods** are functions available within and specific to a class. Methods may consume attributes or other parameters." ] }, { "cell_type": "code", - "execution_count": 107, - "id": "5e3aa41d", + "execution_count": 6, + "id": "24719571-398a-46ca-9eab-1d7837956a9e", "metadata": {}, "outputs": [], "source": [ "class Animal(object):\n", " \n", - " age = 10 #years\n", - " height = 0.8 #cm\n", - " name = \"Bob\"\n", - " wild = True\n", + " age = 11 #years\n", + " weight = 5 # kgs\n", + " name = \"Kenny\"\n", + " wild = False\n", " \n", " def greet(self):\n", - " #print(f\"Greeting human. I am an animal of {self.age} of age and {self.height} tall.\") \n", - " print(f\"Greetings human. I am an animal\") " + " print(f\"Greetings, human. I am an animal.\") " + ] + }, + { + "cell_type": "markdown", + "id": "8b0ab7d9-b83a-4b59-860b-25c99f824282", + "metadata": {}, + "source": [ + "So the difference with typical data structures is that classes can also implement **methods**, which can perform an specific operation." + ] + }, + { + "cell_type": "markdown", + "id": "f7f7e1b8-a91d-452e-8760-4ae3213fb0c1", + "metadata": {}, + "source": [ + "Once you define an object, you can again use one of its methods by appending a `.` to the name of the object and calling its specific method. \n", + "\n", + "Methods are just functions, so therefore they should follow their syntax to call them:" ] }, { "cell_type": "code", - "execution_count": 108, - "id": "f157e013", + "execution_count": 7, + "id": "7c0d5b2b-58b9-4874-ac60-3de582c7f140", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Greetings human. I am an animal\n" + "Greetings, human. I am an animal.\n" ] } ], @@ -150,22 +269,121 @@ "animal.greet()" ] }, + { + "cell_type": "markdown", + "id": "1bf4b777-596a-44de-bc34-5c74eac933dc", + "metadata": {}, + "source": [ + "Did we see this kind of behavior of using a `.` to call methods before? \n", + "\n", + "Yes! For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f879f3bc-febe-4bc5-b8a3-afd9425cf8be", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'HELLO'" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_string = \"hello\"\n", + "my_string.upper()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "edb7bb07-4e0e-4903-99ff-e4be3bec3cde", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_values([11, 'Kenny', False])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_dict = {\"age\": 11, \"name\": \"Kenny\", \"wild\": False}\n", + "my_dict.values()" + ] + }, + { + "cell_type": "markdown", + "id": "ff03b353-2aa3-4f29-924f-e71191f4c8d5", + "metadata": {}, + "source": [ + "Reiterating, this is because EVERYTHING DEFINED IN PYTHON IS AN OBJECT." + ] + }, + { + "cell_type": "markdown", + "id": "ce8305b8-b277-4912-a239-5548606a0207", + "metadata": {}, + "source": [ + "Finally, **methods can use the information stored in the attributes**:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e5bc602c-2bda-4941-9a7d-3630e878f82d", + "metadata": {}, + "outputs": [], + "source": [ + "class Animal(object):\n", + " \n", + " age = 11 #years\n", + " weight = 5 # kgs\n", + " name = \"Kenny\"\n", + " wild = False\n", + " \n", + " def greet(self): # Do not worry about the 'self' here\n", + " print(f\"Greetings, human. I am an animal. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.\") " + ] + }, { "cell_type": "code", - "execution_count": 109, - "id": "3b452f8d", + "execution_count": 11, + "id": "b12fd45b-326c-4263-bc9a-8623b937464a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "This animal is named: Bob, is 10 years old, and 0.8 cm tall\n" + "Greetings, human. I am an animal. My name is Kenny. I am 11 years old and I weight 5 kgs.\n" ] } ], "source": [ - "print(f\"This animal is named: {animal.name}, is {animal.age} years old, and {animal.height} cm tall\")" + "animal = Animal()\n", + "animal.greet()" + ] + }, + { + "cell_type": "markdown", + "id": "9a047198-fc61-4d09-b864-3ff4319f8ad0", + "metadata": {}, + "source": [ + "
\n", + "Take-home message: A class is a TEMPLATE to create a particular object. Think of them as design manuals for making machines, for example a terminator. These machines can have certain attributes (e.g. height, manufacturer, a target to terminate), and perform certain operations (e.g. walk, talk, terminate a target). \n", + "
" ] }, { @@ -173,18 +391,20 @@ "id": "fd1d8864", "metadata": {}, "source": [ - "## 2. Initialize classes\n", + "## Initialize classes\n", + "\n", + "Ok, so classes can save information in the form of attributes, and also implement methods aimed at performing specific operations.\n", "\n", - "Ok, so classess can save information in the form of attributes, and also implement methods aimed at perform specific operations.\n", + "We also mentioned that classes are a template for creating specific kinds of objects (e.g. Animals). \n", "\n", - "We also mentioned that classes are a recipe to create specific kinds of objects (e.g. Animals). However, in the previous example, our animal was too specific. **What if we want an animal with a different set of attributes (e.g. a different name)?** \n", + "However, in our previous example, our animal was too specific. **What if we want an animal with a different set of attributes (e.g. a different name)?** \n", "\n", "We could redefine the class with the new attribute values:" ] }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 13, "id": "fafc4301", "metadata": {}, "outputs": [ @@ -192,25 +412,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "This animal is named: John, is 10 years old, and 0.8 cm tall\n" + "Greetings, human. I am an animal. My name is Firulais. I am 11 years old and I weight 5 kgs.\n" ] } ], "source": [ "class Animal(object):\n", " \n", - " age = 10 #years\n", - " height = 0.8 #cm\n", - " name = \"John\"\n", - " wild = True\n", + " age = 11 #years\n", + " weight = 5 # kgs\n", + " name = \"Firulais\"\n", + " wild = False\n", " \n", - " def greet(self):\n", - " #print(f\"Greeting human. I am an animal of {self.age} of age and {self.height} tall.\") \n", - " print(f\"Greeting human. I am an animal\") \n", + " def greet(self): # Do not worry about the 'self' here\n", + " print(f\"Greetings, human. I am an animal. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.\") \n", " \n", "new_animal = Animal()\n", - "\n", - "print(f\"This animal is named: {new_animal.name}, is {new_animal.age} years old, and {new_animal.height} cm tall\")" + "new_animal.greet()" ] }, { @@ -218,7 +436,9 @@ "id": "52018f9f", "metadata": {}, "source": [ - "Obviously, this is pretty inefficient when you want to scalate things, lacking of reusibility, which when you have to use . And this was one of the advantages of classes." + "Obviously, this is pretty inefficient when you want to scalate things, lacking of reusability. And reusability was one of the advantages of classes. \n", + "\n", + "How could we redefine our new attribute values without having to redefine our whole class again?" ] }, { @@ -231,7 +451,7 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 16, "id": "b5de2ce5", "metadata": {}, "outputs": [ @@ -239,14 +459,47 @@ "name": "stdout", "output_type": "stream", "text": [ - "This animal is named: Bob, is 10 years old, and 0.8 cm tall\n" + "Greetings, human. I am an animal. My name is Kenny. I am 11 years old and I weight 5 kgs.\n", + "Greetings, human. I am an animal. My name is Firulais. I am 11 years old and I weight 5 kgs.\n" ] } ], "source": [ - "new_animal.__setattr__(\"name\", \"Bob\")\n", + "animal.greet()\n", "\n", - "print(f\"This animal is named: {new_animal.name}, is {new_animal.age} years old, and {new_animal.height} cm tall\")" + "animal.__setattr__(\"name\", \"Firulais\")\n", + "\n", + "animal.greet()" + ] + }, + { + "cell_type": "markdown", + "id": "1069c6b1-6fc9-4a26-90ce-7727ef89ab8d", + "metadata": {}, + "source": [ + "(**N.B.** This function can be also used to add new attributes)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "19166260-13b9-4441-92d3-e2a5965245a4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'blue'" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_animal.__setattr__(\"eyes\", \"blue\")\n", + "new_animal.eyes" ] }, { @@ -254,51 +507,50 @@ "id": "7b3fbb2c", "metadata": {}, "source": [ - "But this changes the original animal we created with the name \"John\". We should be able to define objects with the attributes that we would like and have them separately. \n", + "But this changes the original animal we created. What if we want to have separate animals, each with its own unique attribute values?\n", "\n", - "We can do this in the instentation moment. We need to specify which attributes in the classs need to be initialize. This can be done through the method `__init__` in the class definition:" + "We can do this when we instantiate the class—that is, when we create our objects. For that, we need to specify which attributes in the class should be initialized. This is done including the `__init__` method in the class definition as follows:" ] }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 22, "id": "f989ce52", "metadata": {}, "outputs": [], "source": [ "class Animal(object):\n", " \n", - " def __init__(self, \n", + " def __init__(self, # Do not worry about the 'self' here\n", " age,\n", - " height,\n", + " weight,\n", " name,\n", " wild\n", " ):\n", " \n", " self.age = age\n", - " self.height = height\n", + " self.weight = weight\n", " self.name = name\n", " self.wild = wild\n", "\n", - " def greet(self):\n", - " #print(f\"Greeting human. I am an animal of {self.age} of age and {self.height} tall.\") \n", - " print(f\"Greeting human. I am an animal\") \n" + " def greet(self): # Do not worry about the 'self' here\n", + " print(f\"Greetings, human. I am an animal. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.\") \n" ] }, { "cell_type": "code", - "execution_count": 113, + "execution_count": 23, "id": "a4cc342c", "metadata": {}, "outputs": [], "source": [ - "animal_bob = Animal(age = 10,height = 0.8, name = \"Bob\", wild = True)\n", - "animal_john = Animal(age = 10, height = 0.8, name = \"John\", wild = True)" + "animal_kenny = Animal(age=11, weight=5, name = \"Kenny\", wild = False)\n", + "animal_firulais = Animal(age = 2, weight = 2, name = \"Firulais\", wild = True)" ] }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 24, "id": "063fbdf1", "metadata": {}, "outputs": [ @@ -306,14 +558,45 @@ "name": "stdout", "output_type": "stream", "text": [ - "This animal is named: Bob\n", - "This animal is named: John\n" + "This animal is named: Kenny\n", + "Greetings, human. I am an animal. My name is Kenny. I am 11 years old and I weight 5 kgs.\n", + "This animal is named: Firulais\n", + "Greetings, human. I am an animal. My name is Firulais. I am 2 years old and I weight 2 kgs.\n" ] } ], "source": [ - "print(f\"This animal is named: {animal_bob.name}\")\n", - "print(f\"This animal is named: {animal_john.name}\")" + "print(f\"This animal is named: {animal_kenny.name}\")\n", + "animal_kenny.greet()\n", + "\n", + "print(f\"This animal is named: {animal_firulais.name}\")\n", + "animal_firulais.greet()" + ] + }, + { + "cell_type": "markdown", + "id": "0ba1caa0-09f5-4b8f-a4e0-a9e01d5ef7d8", + "metadata": {}, + "source": [ + "As you can see, we can create as many objects of a specific class as we want, each with its own attribute values, because we now have the template (the class) to do this!" + ] + }, + { + "cell_type": "markdown", + "id": "484eace0-ac51-4b49-92d5-3c82b7ef118b", + "metadata": {}, + "source": [ + "**Try it yourself!**: Create your own Animal object and assigning values to its attributes when we define it, as we've just done." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "5e0766c7-6d98-49a6-834b-69c12df393ce", + "metadata": {}, + "outputs": [], + "source": [ + "# Your answer here" ] }, { @@ -321,12 +604,12 @@ "id": "b1e9a385", "metadata": {}, "source": [ - "**We can also define classess that take initial attributes by default.** We just need to specify these values in the `__init__` function (N.B. `__init__` is a function, so it follows the same rules when it comes to parameter definition and order)." + "**We can also define classes that take initial attributes by default.** We just need to specify these values in the `__init__` function (**N.B.** In the end, `__init__` is a function, so it follows the same rules when it comes to parameter definition and order)." ] }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 26, "id": "e673dbf1", "metadata": {}, "outputs": [], @@ -334,25 +617,24 @@ "class Animal(object):\n", " \n", " def __init__(self, \n", - " age,\n", - " height,\n", + " age = 1,\n", + " weight = 2,\n", " name = \"Max\",\n", - " wild = False,\n", + " wild = True\n", " ):\n", " \n", " self.age = age\n", - " self.height = height\n", + " self.weight = weight\n", " self.name = name\n", " self.wild = wild\n", "\n", - " def greet(self):\n", - " #print(f\"Greeting human. I am an animal of {self.age} of age and {self.height} tall.\") \n", - " print(f\"Greeting human. I am an animal\") \n" + " def greet(self): # Do not worry about the 'self' here\n", + " print(f\"Greetings, human. I am an animal. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.\") \n" ] }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 27, "id": "92dfbc9e", "metadata": {}, "outputs": [ @@ -360,14 +642,51 @@ "name": "stdout", "output_type": "stream", "text": [ - "This animal is named: Max, is 12 years old, and 1.2 cm tall\n" + "Greetings, human. I am an animal. My name is Max. I am 12 years old and I weight 2 kgs.\n" ] } ], "source": [ - "animal_3 = Animal(age = 12,height = 1.2)\n", + "another_animal = Animal(age = 12)\n", "\n", - "print(f\"This animal is named: {animal_3.name}, is {animal_3.age} years old, and {animal_3.height} cm tall\")" + "another_animal.greet()" + ] + }, + { + "cell_type": "markdown", + "id": "71aa97dd-2c0d-4c63-ade9-640232e5ad3a", + "metadata": {}, + "source": [ + "### What is `self`?" + ] + }, + { + "cell_type": "markdown", + "id": "322b7db0-1308-45ee-be86-1f153eb2c708", + "metadata": {}, + "source": [ + "`self` is a way for an object to refer to itself. When you create an object from a class, that object needs a way to access its own data (attributes) and perform its own actions (methods).\n", + "\n", + "Think of it like this: when you're talking about yourself, you use the word 'I' or 'me'. In Python, self works the same way for objects—it’s how the object refers to itself.\n", + "\n", + "In the `Animal` example, when we write self.name, it means \"the name of this specific animal\". So if we create an animal like `buddy = Animal(name=\"Buddy\")`, the `self.name` for that object is \"Buddy\"." + ] + }, + { + "cell_type": "markdown", + "id": "6f0e3a41-6ff2-4742-a0b3-c4a87f906577", + "metadata": {}, + "source": [ + "
\n", + "Warning:
\n", + "
\n", + " self is only needed inside the class definition to refer to the specific object you're working with. When you're defining methods inside the class, self is how the object refers to its own attributes and methods.\n", + "
\n", + "
\n", + "When you're using the object outside of the class, you don’t need to include self. The object already knows how to refer to itself.
\n", + "buddy = Animal(name=\"Buddy\")
\n", + "buddy.greet() # You don’t need to use 'self' here\n", + "
" ] }, { @@ -375,16 +694,28 @@ "id": "031f6478", "metadata": {}, "source": [ - "## 3. Inheritance\n", + "## Inheritance\n", "\n", - "What if we now have a new recipe (class), which is just an extension of a previous recipe to, for example, make it more specific? Do we need to redifine this recipe again? **NO!** This is where classes become really handy, because you can make them inherit from other classes.\n", + "What if we want a new template (class) that is just an extension of a previous one, to make it more specific, for example?\n", "\n", - "When a class inherits from another class, it inherits **all** its method and attributes, **unless it overrides them**." + "Do we need to redefine everything from scratch? **NO!** This is where classes become really handy. You can make them **inherit** from other (parent) classes. This allows us to create a new (child) class that takes on the properties (attributes) and behaviors (methods) of an existing (parent) class, while also allowing us to add new features or modify existing ones.\n", + "\n", + "
\n", + "IMPORTANT: When a class inherits from another class, it inherits all its method and attributes, unless it overrides them.\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "id": "c0baa004-9420-4990-96ce-77ad6235232f", + "metadata": {}, + "source": [ + "To specify inheritance in class, we write the parent class name in parentheses after the new (child) class name in the class definition:" ] }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 28, "id": "64fbdf34", "metadata": {}, "outputs": [], @@ -394,9 +725,17 @@ " pass" ] }, + { + "cell_type": "markdown", + "id": "b956758c-b4c7-45b5-94d3-9cd267565d64", + "metadata": {}, + "source": [ + "Remember when we included `object` in our class definition? That's because all classes in Python, by default, inherit from object. While it's not strictly necessary to specify this inheritance, it’s considered good practice to include it." + ] + }, { "cell_type": "code", - "execution_count": 118, + "execution_count": 29, "id": "fd650a2a", "metadata": {}, "outputs": [ @@ -404,15 +743,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "This a god named: Pretzels, is 5 years old, and 10 cm tall\n", - "Greeting human. I am an animal\n" + "Greetings, human. I am an animal. My name is Mordisquitos. I am 5 years old and I weight 10 kgs.\n" ] } ], "source": [ - "my_dog = Dog(age = 5, height=10, name=\"Pretzels\")\n", - "\n", - "print(f\"This a god named: {my_dog.name}, is {my_dog.age} years old, and {my_dog.height} cm tall\")\n", + "my_dog = Dog(age = 5, weight=10, name=\"Mordisquitos\")\n", "my_dog.greet()" ] }, @@ -421,25 +757,25 @@ "id": "d3d0dcea", "metadata": {}, "source": [ - "Mmm, but here, when the dog salutes us, it says it is an animal, which is true, but we may want it to be more specific. We can do this by redefining its greet method:" + "Mmm, but here, when the dog salutes us, it says it is an animal, which is true, but we may want it to be more specific. We can do this by **redefining** its `greet` method:" ] }, { "cell_type": "code", - "execution_count": 119, + "execution_count": 30, "id": "5b27ebfe", "metadata": {}, "outputs": [], "source": [ - "# Here Dog will inherit from Animal\n", + "# Here Dog will inherit from Animal, and redefine its greet method\n", "class Dog(Animal):\n", " def greet(self):\n", - " print(f\"Greetings human. I am a dog!\") " + " print(f\"Greetings, human. I am a dog. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.\") " ] }, { "cell_type": "code", - "execution_count": 120, + "execution_count": 31, "id": "d09e5740", "metadata": {}, "outputs": [ @@ -447,14 +783,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "This a god named: Pretzels, is 5 years old, and 10 cm tall\n", - "Greetings human. I am a dog!\n" + "Greetings, human. I am a dog. My name is Pretzels. I am 5 years old and I weight 10 kgs.\n" ] } ], "source": [ - "my_dog = Dog(age = 5, height=10, name=\"Pretzels\")\n", - "print(f\"This a god named: {my_dog.name}, is {my_dog.age} years old, and {my_dog.height} cm tall\")\n", + "my_dog = Dog(age = 5, weight=10, name=\"Pretzels\")\n", "my_dog.greet()" ] }, @@ -463,12 +797,12 @@ "id": "27b3bda1", "metadata": {}, "source": [ - "Note that this has **only** the `greet` method in the Dog class. The Animal class still has the original `greet` method" + "Note that this has **only** affected the `greet` method in the Dog class. The Animal class still has the original `greet` method" ] }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 33, "id": "c10bf301", "metadata": {}, "outputs": [ @@ -476,23 +810,151 @@ "name": "stdout", "output_type": "stream", "text": [ - "Greeting human. I am an animal\n" + "Greetings, human. I am an animal. My name is Pretzels. I am 5 years old and I weight 10 kgs.\n" ] } ], "source": [ - "# Note that this has on\n", - "my_animal = Animal(age = 5, height=10, name=\"Pretzels\")\n", + "my_animal = Animal(age = 5, weight=10, name=\"Pretzels\")\n", "my_animal.greet()" ] }, + { + "cell_type": "markdown", + "id": "08aa5447-dd6a-4282-b9b1-dc1226ee1de8", + "metadata": {}, + "source": [ + "Finally, our \"child\" class may have their own specific methods too, in addition to the ones they inherit from its parent(s):" + ] + }, { "cell_type": "code", - "execution_count": null, - "id": "cc1de1e2", + "execution_count": 34, + "id": "cdc24719-2b1b-4a4b-b6eb-0a2264dbf545", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Here Dog will inherit from Animal, redefine its greet method and add a new method call \"bark\"\n", + "class Dog(Animal):\n", + " def greet(self):\n", + " print(f\"Greetings, human. I am a dog. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.\") \n", + " \n", + " # This is a new method we add to this class\n", + " def bark(self): \n", + " print(\"wow! woof! bow-wow!\") " + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "eeb617dd-f75e-42c0-bcc9-16d7af49ccf6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "wow! woof! bow-wow!\n" + ] + } + ], + "source": [ + "my_dog = Dog(age = 5, weight=10, name=\"Pretzels\")\n", + "my_dog.bark()" + ] + }, + { + "cell_type": "markdown", + "id": "ee995e7c-3c9e-41e0-b11e-b661059d19ea", + "metadata": {}, + "source": [ + "This method belongs ONLY to the Dog class. Therefore, the following will give an error:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "30f8a980-234e-451f-bd60-5dc8ba21519f", + "metadata": {}, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'Animal' object has no attribute 'bark'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[36], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m my_dog \u001b[38;5;241m=\u001b[39m Animal(age \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m5\u001b[39m, weight\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m10\u001b[39m, name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPretzels\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m----> 2\u001b[0m my_dog\u001b[38;5;241m.\u001b[39mbark()\n", + "\u001b[0;31mAttributeError\u001b[0m: 'Animal' object has no attribute 'bark'" + ] + } + ], + "source": [ + "my_dog = Animal(age = 5, weight=10, name=\"Pretzels\")\n", + "my_dog.bark()" + ] + }, + { + "cell_type": "markdown", + "id": "453e9410-3cfe-4be8-a86f-cbc3ff4fe361", + "metadata": {}, + "source": [ + "## Practice excersises" + ] + }, + { + "cell_type": "markdown", + "id": "ea67a91e-a6b3-4de6-8f74-58d366c7d248", + "metadata": {}, + "source": [ + "```{exercise}\n", + ":label: classes1\n", + "\n", + "Let's create our recipe for a terminator!\n", + "\n", + "1- Define a class that can be initilize to a given terminator name (e.g. T-800). As a second attribute, define the name of the person this terminator is supposed to terminate (e.g. John Connor).\n", + "\n", + "2- Now, this class should have a method `ask_and_decide`, which, given an input name of person, it decides whether to terminate that person. Show this decision as print message (Hint: You can use the second attribute and `if/else` for this). \n", + "\n", + "3-Test the class by creating an object with a specific terminator and target, and then call `ask_and_decide` with different names to see how the terminator behaves.\n", + "\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "681113e0-993c-48b7-8d6e-1ffb44410869", + "metadata": {}, + "outputs": [], + "source": [ + "# Your answers from here" + ] + }, + { + "cell_type": "markdown", + "id": "deb44e1b-5b5a-41b1-8616-26d260e052a5", + "metadata": {}, + "source": [ + "```{exercise}\n", + ":label: classes2\n", + "\n", + "As a Cyberdyne Systems engineer, you've been tasked with developing a new, more advanced terminator. This new terminator should extend the functionalities of the one you created in the previous exercise by adding a new ability. This could be anything you like—be creative! You can also add new attributes if you'd like.\n", + "\n", + "Remember to use inheritance for this exercise to build on the existing terminator class.\n", + "\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "fb85f526-e117-4653-aa4f-2f8ecb08129f", + "metadata": {}, + "outputs": [], + "source": [ + "# Your answers from here" + ] } ], "metadata": { diff --git a/chapters/module-2/In-class_100324.html b/chapters/module-2/In-class_100324.html new file mode 100644 index 0000000..b24bb26 --- /dev/null +++ b/chapters/module-2/In-class_100324.html @@ -0,0 +1,482 @@ + + + + + + + + + + + Instructions — DS-1002 Programming for Data Science + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
+ + + + +
+
+ + + + + +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Instructions

+ +
+
+ +
+
+
+ + + + +
+ +
+

Instructions#

+
    +
  • Complete Jupyter Notebook for tasks. Clearly show relevant work.

  • +
  • Before beginning to fill in the notebook, make sure you have written down your name in the first cell, as well as of any collaborators in case you have worked in groups.

  • +
  • Before you turn this problem in, make sure everything runs as expected. First, restart the kernel (in the menubar, select Kernel \(\rightarrow\) Restart) and then run all cells (in the menubar, select Cell \(\rightarrow\) Run All).

  • +
  • Make sure your changes have been changed and when ready, submit the jupyter notebook through Canvas.

  • +
+
+
+
NAME = ""
+COLLABORATORS = ""
+
+
+
+
+
+

1. The following function aims at returning whether a given list of numbers contains at least one element divisible by 7, but it fails due to a bug. You can test this failing behaviour by passing, for example, the list: [10, 7, 13].

+

Redefine the function correcting the bug. Test that it behaves correctly with several examples. In addition, in a separate markdown cell, explain why the function was failing. (3 points)

+
+
+
def has_atleast_one_seven(nums):
+    """Return whether the given list of numbers is lucky. A lucky list contains
+    at least one number divisible by 7.
+    """
+    for num in nums:
+        if num % 7 == 0:
+            return True
+        else:
+            return False
+
+
+
+
+

2. Using a for loop and and if statements, print all the numbers between 10 and 1000 (including both sides) that are divisible by 7 and the sum of their digits is greater than 10, but only if the number itself is also odd. (2 points)

+
+ + + + +
+ + + + + + +
+ +
+
+
+ +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ + \ No newline at end of file diff --git a/chapters/module-2/In-class_100324_sols.html b/chapters/module-2/In-class_100324_sols.html new file mode 100644 index 0000000..bac14d1 --- /dev/null +++ b/chapters/module-2/In-class_100324_sols.html @@ -0,0 +1,600 @@ + + + + + + + + + + + Instructions — DS-1002 Programming for Data Science + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
+ + + + +
+
+ + + + + +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Instructions

+ +
+
+ +
+
+
+ + + + +
+ +
+

Instructions#

+
    +
  • Complete Jupyter Notebook for tasks. Clearly show relevant work.

  • +
  • Before beginning to fill in the notebook, make sure you have written down your name in the first cell, as well as of any collaborators in case you have worked in groups.

  • +
  • Before you turn this problem in, make sure everything runs as expected. First, restart the kernel (in the menubar, select Kernel \(\rightarrow\) Restart) and then run all cells (in the menubar, select Cell \(\rightarrow\) Run All).

  • +
  • Make sure your changes have been changed and when ready, submit the jupyter notebook through Canvas.

  • +
+
+
+
NAME = ""
+COLLABORATORS = ""
+
+
+
+
+
+

1. The following function aims at returning whether a given list of numbers contains at least one element divisible by 7, but it fails due to a bug. You can test this failing behaviour by passing, for example, the list: [10, 7, 13].

+

Redefine the function correcting the bug. Test that it behaves correctly with several examples. In addition, in a separate markdown cell, explain why the function was failing. (3 points)

+
+
+
def has_atleast_one_seven(nums):
+    """Return whether the given list of numbers is lucky. A lucky list contains
+    at least one number divisible by 7.
+    """
+    for num in nums:
+        if num % 7 == 0:
+            return True
+        else:
+            return False
+
+
+
+
+
+
+
# Solution
+def has_atleast_one_seven(nums):
+    """Return whether the given list of numbers is lucky. A lucky list contains
+    at least one number divisible by 7.
+    """
+    for num in nums:
+        if num % 7 == 0:
+            return True
+
+    return False
+
+
+
+
+
+
+
has_atleast_one_seven([10,1,13,1,1,1,1,6,7])
+
+
+
+
+
True
+
+
+
+
+
+
+
has_atleast_one_seven([10,8,13,1,4,5,6,81,6])
+
+
+
+
+
False
+
+
+
+
+

The bug was that in the original function, only one iteration was performed, because of both return in the if/else, which made you exit the function after the first iteration. We only need to exit the function early if we happen to hit an element divisible by 7. If there is not, we should carry on looping the list until the end. If that happens, that’s becaus we don’t have any element divisible by 7, and the function should return a False.

+

2. Using a for loop and and if statements, print all the numbers between 10 and 1000 (including both sides) that are divisible by 7 and the sum of their digits is greater than 10, but only if the number itself is also odd. (2 points)

+
+
+
numbers = range(10, 1001) # You have to use 1001 here to include 1000
+
+for num in numbers:
+    if num % 7 == 0: # This condition checks if the number is divisible by 7
+        num_as_str = str(num) # convert the number to string and store this info in a new variable
+
+        # This block now calculates the sum of the digits of num as a string 
+        sum_digits = 0
+        for s in num_as_str: # This loop through its individual digit of num and update the sumation adding the iterated digit
+            sum_digits += int(s) # we have to convert the character back to an integer. 
+
+        # Now add a condition to print num, only if the sum of digits is greater than 10 and num is odd, i.e, not even.
+        if (sum_digits > 10) and (num % 2 != 0):
+            print(num)
+
+
+
+
+
49
+77
+119
+147
+175
+189
+245
+259
+273
+287
+329
+357
+371
+385
+399
+427
+455
+469
+483
+497
+525
+539
+553
+567
+581
+595
+609
+623
+637
+651
+665
+679
+693
+707
+735
+749
+763
+777
+791
+805
+819
+833
+847
+861
+875
+889
+903
+917
+931
+945
+959
+973
+987
+
+
+
+
+
+ + + + +
+ + + + + + +
+ +
+
+
+ +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ + \ No newline at end of file diff --git a/chapters/module-3/031-errors_and_exceptions.html b/chapters/module-3/031-errors_and_exceptions.html index 216969f..fb49f89 100644 --- a/chapters/module-3/031-errors_and_exceptions.html +++ b/chapters/module-3/031-errors_and_exceptions.html @@ -61,6 +61,7 @@ + @@ -200,6 +201,7 @@

Module 3: Python II (Advance)

@@ -819,10 +821,10 @@

Practice excersisesExercise 24

Write a function check_positive_number(num) that:

-

1 - Tries to check if a number is positive. -2 - If the number is negative, raise a ValueError with the message ‘Number must be positive’. -3 - If no exception occurs, print ‘The number is positive’ inside the else block. -4 - Ensure that, regardless of whether an exception occurs, a final message ‘Check complete’ is printed using a finally block

+

1 - Tries to check if a number is positive.
+2 - If the number is negative, raise a ValueError with the message ‘Number must be positive’.
+3 - If no exception occurs, print ‘The number is positive’ inside the else block.
+4 - Ensure that, regardless of whether an exception occurs, a final message ‘Check complete’ is printed using a finally block.

+ +
+

next

+

Introduction to object-oriented programming (OOP)

+
+ +
diff --git a/chapters/module-3/032-classes.html b/chapters/module-3/032-classes.html index 53d1b08..9939d7a 100644 --- a/chapters/module-3/032-classes.html +++ b/chapters/module-3/032-classes.html @@ -8,7 +8,7 @@ - Object-Oriented Programming (OOP) — DS-1002 Programming for Data Science + Introduction to object-oriented programming (OOP) — DS-1002 Programming for Data Science @@ -32,9 +32,9 @@ - + - + @@ -61,6 +61,7 @@ + @@ -122,8 +123,6 @@ - - @@ -333,7 +339,7 @@
-

Object-Oriented Programming (OOP)

+

Introduction to object-oriented programming (OOP)

@@ -343,9 +349,18 @@

Contents

@@ -357,88 +372,138 @@

Contents

-
-

Object-Oriented Programming (OOP)#

-

Python is an object-oriented programming (OOP) language. The object-oriented programming is kind of paradigm that helps you group state (attributes) and behavior (methods) together in handy packets of functionality. It also allows for useful specialized mechanisms such as inheritance.

-

The fact that python is an OOP language does not mean you are force to follow this paradigm (unlike some other OOP languages). You can still do procedural programming as we have learned so far, with modules and functions. In Python, you can select the paradigm that fits best for your your purposes, or even mix paradigms.

+
+

Introduction to object-oriented programming (OOP)#

+

What you will learn in this lesson:

  • Classes and objects

  • Attributes and methods

  • Inheritance

  • -
  • Polymorphism

  • -
  • Encapsulation

-
-

1. Classes and Objects#

-

Classes help describe/model data structures, or collections of functions centered on a particular set of tasks related to a particular type of data. A class is much like a template or schema. Classes may, but does not have to, take parameters.

+
+

Introduction#

+

Python is an object-oriented programming (OOP) language. The object-oriented programming is kind of paradigm that helps you group state (attributes) and behavior (methods) together in handy packets of functionality. It also allows for useful specialized mechanisms such as inheritance.

+

The fact that python is an OOP language does not mean you are force to follow this paradigm (unlike some other OOP languages). You can still do procedural programming as we have learned so far, with modules and functions. In Python, you can select the paradigm that fits best for your your purposes, or even mix paradigms.

+

OOP is about grouping DATA with the FUNCTIONS that manipulate that data and hiding HOW it manipulates it so you can MODIFY the behavior through INHERITANCE.

+

Advantages of OOP programming:

    -
  • Attributes - values/fields specific to each instance of a class.

  • -
  • Methods - functions available within and specific to a class. Methods may consume attributes or other parameters.

  • -
  • Constructors - the attribute structure/default values of a class.

  • +
  • MAINTAINABILITY. Object-oriented programming methods make code more maintainable. Identifying the source of errors is easier because objects are self-contained.

  • +
  • REUSABILITY. Because objects contain both data and methods that act on data, objects can be thought of as self-contained black boxes. This feature makes it easy to reuse code in new systems.Messages provide a predefined interface to an object’s data and functionality. With this interface, an object can be used in any context.

  • +
  • SCALABILITY. Object-oriented programs are also scalable. As an object’s interface provides a road map for reusing the object in new software, and provides all the information needed to replace the object without affecting other code. This way aging code can be replaced with faster algorithms and newer technology.

-

Instances / Objects are actual, concrete implementations of a class with specific values.

+
+
+

Classes and Objects#

+
+Everything defined in Python is an object. +
+

You’ve heard this phrase quite a few times throughout the course. But what is an object?

-

“OO is about grouping DATA with the FUNCTIONS that manipulate that data and hiding HOW it manipulates it so you can MODIFY the behavior through INHERITANCE.”

+

An object is like a special kind of data structure (like list, dictionaries, etc) that not only stores data (attributes) but also has functions (methods) that can do things with that data.

-

Advantages of OOP programming:

+

Objects arise from classes. What is a class?

+
+

Classes are much like a template or scheme for creating objects. It defines what data (attributes) the objects will store and what actions (methods) they can perform.

+
+
+

Defining a class#

+

The syntax to define a class is the following:

+
class NameOfTheClass(object):
+    Attributes
+    ...
+    ...
+    Methods
+    

Let’s break this syntax down a bit:

    -
  • MAINTAINABILITY Object-oriented programming methods make code more maintainable. Identifying the source of errors is easier because objects are self-contained.

  • -
  • REUSABILITY Because objects contain both data and methods that act on data, objects can be thought of as self-contained black boxes. This feature makes it easy to reuse code in new systems.Messages provide a predefined interface to an object’s data and functionality. With this interface, an object can be used in any context.

  • -
  • SCALABILITY Object-oriented programs are also scalable. As an object’s interface provides a road map for reusing the object in new software, and provides all the information needed to replace the object without affecting other code. This way aging code can be replaced with faster algorithms and newer technology.

  • +
  • We start with the keyword class to let Python now we are going to define a class.

  • +
  • Then we provide a name for the class. (Note: Pythonists like to use CamelCase naming convention for this…)

  • +
  • A parenthesis specifying the inheritance of the class. Here we used object, which is the most basic class that all other classes inherit from. If no inheritence is specified, stick with object. We will come to inheritance later.

  • +
  • We end the header of the definition with a :, to specify that whatever comes next belongs to the class.

  • +
  • After that, in an indented block, we include the attributes and methods of the class.

-

You can think of classes as a kind of data structure (e.g.), which can store information:

-
class Animal(object):
-    age = 10 #years
-    height = 0.8 #cm
-    origin = "Africa"
-    sex = "female"
-    name = "Bob"
-    wild = True
+
# Example
+class Animal(object):
+    pass
 
-

To be able to use a class, we have to instantiate it, i.e. create an object of it. Think of a class as the RECIPE to create a particular object.

+

Instances / Objects are actual, concrete implementations of a class with specific values.

-
my_animal = Animal()
+
my_animal = Animal()  # Creating a Animal object
+print(type(my_animal))  # Show that it's a Animal object
+
+
+
+
+
<class '__main__.Animal'>
 
+
+
+

Attributes and methods#

+

What are attributes?

+
+

Attributes are the values/fields specific to each instance (or object) of a class.

+
-
print(my_animal.age)
-print(my_animal.origin)
+
class Animal(object):
+    age = 11 #years
+    weight = 5 # kgs
+    name = "Kenny"
+    wild = False
+
+
+
+
+

Therefore, you may think of classes as a kind of data structure (e.g. Dictionaries) to store information.

+

Once you define an object, you can access its attributes using append a . and calling its specific attribute:

+
+
+
my_animal = Animal()  # Creating a Animal object
+
+print(my_animal.age)
+print(my_animal.name)
 
-
10
-Africa
+
11
+Kenny
 
-

The difference with data structures is that class can implement methods, which can perform an operation:

+
+Important:. You need to create an object in order to access its attributes (and methods, as explained below). Until then, you only have a general design manual (the class), not a specific object! Think of creating an object as defining a new type of data, like integers, floats, lists or dictionaries. +

And what are methods?

+
+

Methods are functions available within and specific to a class. Methods may consume attributes or other parameters.

+
class Animal(object):
     
-    age = 10 #years
-    height = 0.8 #cm
-    name = "Bob"
-    wild = True
+    age = 11 #years
+    weight = 5 # kgs
+    name = "Kenny"
+    wild = False
     
     def greet(self):
-        #print(f"Greeting human. I am an animal of {self.age} of age and {self.height} tall.")   
-        print(f"Greetings human. I am an animal")   
+        print(f"Greetings, human. I am an animal.")   
 
+

So the difference with typical data structures is that classes can also implement methods, which can perform an specific operation.

+

Once you define an object, you can again use one of its methods by appending a . to the name of the object and calling its specific method.

+

Methods are just functions, so therefore they should follow their syntax to call them:

-

2. Initialize classes#

-

Ok, so classess can save information in the form of attributes, and also implement methods aimed at perform specific operations.

-

We also mentioned that classes are a recipe to create specific kinds of objects (e.g. Animals). However, in the previous example, our animal was too specific. What if we want an animal with a different set of attributes (e.g. a different name)?

+

Initialize classes#

+

Ok, so classes can save information in the form of attributes, and also implement methods aimed at performing specific operations.

+

We also mentioned that classes are a template for creating specific kinds of objects (e.g. Animals).

+

However, in our previous example, our animal was too specific. What if we want an animal with a different set of attributes (e.g. a different name)?

We could redefine the class with the new attribute values:

class Animal(object):
     
-    age = 10 #years
-    height = 0.8 #cm
-    name = "John"
-    wild = True
+    age = 11 #years
+    weight = 5 # kgs
+    name = "Firulais"
+    wild = False
     
-    def greet(self):
-        #print(f"Greeting human. I am an animal of {self.age} of age and {self.height} tall.")   
-        print(f"Greeting human. I am an animal")   
+    def greet(self): # Do not worry about the 'self' here
+        print(f"Greetings, human. I am an animal. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.")   
         
 new_animal = Animal()
-
-print(f"This animal is named: {new_animal.name}, is {new_animal.age} years old, and {new_animal.height} cm tall")
+new_animal.greet()
 
-
This animal is named: John, is 10 years old, and 0.8 cm tall
+
Greetings, human. I am an animal. My name is Firulais. I am 11 years old and I weight 5 kgs.
 
-

Obviously, this is pretty inefficient when you want to scalate things, lacking of reusibility, which when you have to use . And this was one of the advantages of classes.

+

Obviously, this is pretty inefficient when you want to scalate things, lacking of reusability. And reusability was one of the advantages of classes.

+

How could we redefine our new attribute values without having to redefine our whole class again?

We could use the built-in method __setattr__, which all classes in Python have, to set a new attribute value.

-
new_animal.__setattr__("name", "Bob")
+
animal.greet()
 
-print(f"This animal is named: {new_animal.name}, is {new_animal.age} years old, and {new_animal.height} cm tall")
+animal.__setattr__("name", "Firulais")
+
+animal.greet()
 
-
This animal is named: Bob, is 10 years old, and 0.8 cm tall
+
Greetings, human. I am an animal. My name is Kenny. I am 11 years old and I weight 5 kgs.
+Greetings, human. I am an animal. My name is Firulais. I am 11 years old and I weight 5 kgs.
 
-

But this changes the original animal we created with the name “John”. We should be able to define objects with the attributes that we would like and have them separately.

-

We can do this in the instentation moment. We need to specify which attributes in the classs need to be initialize. This can be done through the method __init__ in the class definition:

+

(N.B. This function can be also used to add new attributes)

+
+
+
new_animal.__setattr__("eyes", "blue")
+new_animal.eyes
+
+
+
+
+
'blue'
+
+
+
+
+

But this changes the original animal we created. What if we want to have separate animals, each with its own unique attribute values?

+

We can do this when we instantiate the class—that is, when we create our objects. For that, we need to specify which attributes in the class should be initialized. This is done including the __init__ method in the class definition as follows:

class Animal(object):
     
-    def __init__(self, 
+    def __init__(self,  # Do not worry about the 'self' here
                  age,
-                 height,
+                 weight,
                  name,
                  wild
                 ):
         
         self.age = age
-        self.height = height
+        self.weight = weight
         self.name = name
         self.wild = wild
 
-    def greet(self):
-        #print(f"Greeting human. I am an animal of {self.age} of age and {self.height} tall.")   
-        print(f"Greeting human. I am an animal")   
+    def greet(self): # Do not worry about the 'self' here
+        print(f"Greetings, human. I am an animal. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.")   
 
-
animal_bob = Animal(age = 10,height = 0.8, name = "Bob", wild = True)
-animal_john = Animal(age = 10, height = 0.8, name = "John", wild = True)
+
animal_kenny = Animal(age=11, weight=5, name = "Kenny", wild = False)
+animal_firulais = Animal(age = 2, weight = 2, name = "Firulais", wild = True)
 
-
print(f"This animal is named: {animal_bob.name}")
-print(f"This animal is named: {animal_john.name}")
+
print(f"This animal is named: {animal_kenny.name}")
+animal_kenny.greet()
+
+print(f"This animal is named: {animal_firulais.name}")
+animal_firulais.greet()
 
-
This animal is named: Bob
-This animal is named: John
+
This animal is named: Kenny
+Greetings, human. I am an animal. My name is Kenny. I am 11 years old and I weight 5 kgs.
+This animal is named: Firulais
+Greetings, human. I am an animal. My name is Firulais. I am 2 years old and I weight 2 kgs.
 
-

We can also define classess that take initial attributes by default. We just need to specify these values in the __init__ function (N.B. __init__ is a function, so it follows the same rules when it comes to parameter definition and order).

+

As you can see, we can create as many objects of a specific class as we want, each with its own attribute values, because we now have the template (the class) to do this!

+

Try it yourself!: Create your own Animal object and assigning values to its attributes when we define it, as we’ve just done.

+
+
+
# Your answer here
+
+
+
+
+

We can also define classes that take initial attributes by default. We just need to specify these values in the __init__ function (N.B. In the end, __init__ is a function, so it follows the same rules when it comes to parameter definition and order).

class Animal(object):
     
     def __init__(self, 
-                 age,
-                 height,
+                 age = 1,
+                 weight = 2,
                  name = "Max",
-                 wild = False,
+                 wild = True
                 ):
         
         self.age = age
-        self.height = height
+        self.weight = weight
         self.name = name
         self.wild = wild
 
-    def greet(self):
-        #print(f"Greeting human. I am an animal of {self.age} of age and {self.height} tall.")   
-        print(f"Greeting human. I am an animal")   
+    def greet(self): # Do not worry about the 'self' here
+        print(f"Greetings, human. I am an animal. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.")   
 
-
animal_3 = Animal(age = 12,height = 1.2)
+
another_animal = Animal(age = 12)
 
-print(f"This animal is named: {animal_3.name}, is {animal_3.age} years old, and {animal_3.height} cm tall")
+another_animal.greet()
 
-
This animal is named: Max, is 12 years old, and 1.2 cm tall
+
Greetings, human. I am an animal. My name is Max. I am 12 years old and I weight 2 kgs.
 
+
+

What is self?#

+

self is a way for an object to refer to itself. When you create an object from a class, that object needs a way to access its own data (attributes) and perform its own actions (methods).

+

Think of it like this: when you’re talking about yourself, you use the word ‘I’ or ‘me’. In Python, self works the same way for objects—it’s how the object refers to itself.

+

In the Animal example, when we write self.name, it means “the name of this specific animal”. So if we create an animal like buddy = Animal(name="Buddy"), the self.name for that object is “Buddy”.

+
+Warning:
+
+ self is only needed inside the class definition to refer to the specific object you're working with. When you're defining methods inside the class, self is how the object refers to its own attributes and methods. +
+
+When you're using the object outside of the class, you don’t need to include self. The object already knows how to refer to itself.
+buddy = Animal(name="Buddy")
+buddy.greet() # You don’t need to use 'self' here +
-

3. Inheritance#

-

What if we now have a new recipe (class), which is just an extension of a previous recipe to, for example, make it more specific? Do we need to redifine this recipe again? NO! This is where classes become really handy, because you can make them inherit from other classes.

-

When a class inherits from another class, it inherits all its method and attributes, unless it overrides them.

+

Inheritance#

+

What if we want a new template (class) that is just an extension of a previous one, to make it more specific, for example?

+

Do we need to redefine everything from scratch? NO! This is where classes become really handy. You can make them inherit from other (parent) classes. This allows us to create a new (child) class that takes on the properties (attributes) and behaviors (methods) of an existing (parent) class, while also allowing us to add new features or modify existing ones.

+
+IMPORTANT: When a class inherits from another class, it inherits all its method and attributes, unless it overrides them. +
+

To specify inheritance in class, we write the parent class name in parentheses after the new (child) class name in the class definition:

# Here Dog will inherit from Animal
@@ -610,59 +772,137 @@ 

3. Inheritanceobject in our class definition? That’s because all classes in Python, by default, inherit from object. While it’s not strictly necessary to specify this inheritance, it’s considered good practice to include it.

-
my_dog = Dog(age = 5, height=10, name="Pretzels")
-
-print(f"This a god named: {my_dog.name}, is {my_dog.age} years old, and {my_dog.height} cm tall")
+
my_dog = Dog(age = 5, weight=10, name="Mordisquitos")
 my_dog.greet()
 
-
This a god named: Pretzels, is 5 years old, and 10 cm tall
-Greeting human. I am an animal
+
Greetings, human. I am an animal. My name is Mordisquitos. I am 5 years old and I weight 10 kgs.
 
-

Mmm, but here, when the dog salutes us, it says it is an animal, which is true, but we may want it to be more specific. We can do this by redefining its greet method:

+

Mmm, but here, when the dog salutes us, it says it is an animal, which is true, but we may want it to be more specific. We can do this by redefining its greet method:

-
# Here Dog will inherit from Animal
+
# Here Dog will inherit from Animal, and redefine its greet method
 class Dog(Animal):
     def greet(self):
-        print(f"Greetings human. I am a dog!") 
+        print(f"Greetings, human. I am a dog. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.")   
 
-
my_dog = Dog(age = 5, height=10, name="Pretzels")
-print(f"This a god named: {my_dog.name}, is {my_dog.age} years old, and {my_dog.height} cm tall")
+
my_dog = Dog(age = 5, weight=10, name="Pretzels")
 my_dog.greet()
 
-
This a god named: Pretzels, is 5 years old, and 10 cm tall
-Greetings human. I am a dog!
+
Greetings, human. I am a dog. My name is Pretzels. I am 5 years old and I weight 10 kgs.
 
-

Note that this has only the greet method in the Dog class. The Animal class still has the original greet method

+

Note that this has only affected the greet method in the Dog class. The Animal class still has the original greet method

-
# Note that this has on
-my_animal = Animal(age = 5, height=10, name="Pretzels")
+
my_animal = Animal(age = 5, weight=10, name="Pretzels")
 my_animal.greet()
 
-
Greeting human. I am an animal
+
Greetings, human. I am an animal. My name is Pretzels. I am 5 years old and I weight 10 kgs.
+
+
+
+
+

Finally, our “child” class may have their own specific methods too, in addition to the ones they inherit from its parent(s):

+
+
+
# Here Dog will inherit from Animal, redefine its greet method and add a new method call "bark"
+class Dog(Animal):
+    def greet(self):
+        print(f"Greetings, human. I am a dog. My name is {self.name}. I am {self.age} years old and I weight {self.weight} kgs.")   
+    
+    # This is a new method we add to this class
+    def bark(self): 
+        print("wow! woof! bow-wow!")   
+
+
+
+
+
+
+
my_dog = Dog(age = 5, weight=10, name="Pretzels")
+my_dog.bark()
+
+
+
+
+
wow! woof! bow-wow!
+
+
+
+
+

This method belongs ONLY to the Dog class. Therefore, the following will give an error:

+
+
+
my_dog = Animal(age = 5, weight=10, name="Pretzels")
+my_dog.bark()
+
+
+
+
+
---------------------------------------------------------------------------
+AttributeError                            Traceback (most recent call last)
+Cell In[27], line 2
+      1 my_dog = Animal(age = 5, weight=10, name="Pretzels")
+----> 2 my_dog.bark()
+
+AttributeError: 'Animal' object has no attribute 'bark'
+
+
+
+
+

+
+

Practice excersises#

+
+ +

Exercise 25

+
+

Let’s create our recipe for a terminator!

+

1- Define a class that can be initilize to a given terminator name (e.g. T-800). As a second attribute, define the name of the person this terminator is supposed to terminate (e.g. John Connor).

+

2- Now, this class should have a method ask_and_decide, which, given an input name of person, it decides whether to terminate that person. Show this decision as print message (Hint: You can use the second attribute and if/else for this).

+

3-Test the class by creating an object with a specific terminator and target, and then call ask_and_decide with different names to see how the terminator behaves.

+
+
+
+
+
# Your answers from here
+
+
+
+
+
+ +

Exercise 26

+
+

As a Cyberdyne Systems engineer, you’ve been tasked with developing a new, more advanced terminator. This new terminator should extend the functionalities of the one you created in the previous exercise by adding a new ability. This could be anything you like—be creative! You can also add new attributes if you’d like.

+

Remember to use inheritance for this exercise to build on the existing terminator class.

+
+
+ diff --git a/genindex.html b/genindex.html index a2f4a75..caabe4a 100644 --- a/genindex.html +++ b/genindex.html @@ -200,6 +200,7 @@

Module 3: Python II (Advance)

diff --git a/index.html b/index.html index 0acbe48..4978dcf 100644 --- a/index.html +++ b/index.html @@ -202,6 +202,7 @@

Module 3: Python II (Advance)

diff --git a/objects.inv b/objects.inv index 749d1f9b66be14445fa4c4442a573b23d153f4e9..4310f5d54408e9cb00338b6c3c881843f2f846d4 100644 GIT binary patch delta 976 zcmV;>126oe2)GE4c7I)O+aMH%@AE4>ZJpW+wwk2-(zJ`N*_26Jvt}RKl|^itx^=(; zTqXa0V6aURVyKck8_s!NI2;a;-l0-p#$TVuV1b3m$s*wbF@dv)i|j*2(+I>-y5H>8 zomdvpSKSzy#zE%*LAe%plz=(ndCJ|?EhEkRjs?n)Ko)Ei0)HEY!Im_u3JhX7CkS#P z7)`XFle*Vh<3AD_iCh%;Q;5K6O3NIbJx%BYo}a*XwdVt{h(}#Z9&Q7cT zlK;_6{X3v*8R6tMXIvy^9R2WJdoA)$wnue)G}U=;x}WWcLRA7%`Y6NPBh^`%tTMal z5-)N>FgtT{WAKPrj^+jCKDcG775=oIh-8tfACXv>j(??4-Vo3dGbAYU3R$LF=(_b( zLgQ7*Fy}HE+)6{h1(Uhq)oBg2%1r+_nImN?Gq7U*IN7$Ee5FD&Ya87PvE`QF6=rG9 z1H{~JPF)!})9oC=h0Gq3@DNwXwpd=CXjGi@F%I%9syEAIraCTl$Bl`A$<~?mK_=ug*t{_Mw4Yp zS$)f!8Y7q5&|k+ptIawtk8{kHILnd1XHIquFn?n*`|3o+s}z^sweNA$>f^f0)ZM1b zsSfoDc*EEk?p{;W=}zbOI2C}(qo1gYwtd>4USCgl=RT6R+8B^(S+4uEEi)6@oAJ%~ z=kLjE@@qUBm_fxgqCj(8giYZ2i?*&d40sTuD{`K(xa;s97Ca(rcqpsOvVd^+<)<48 zkADYk%VNM*V3LyzuQn-7YqO)|=b$q)`@ypKi;I*lvD$7|Gazdw9JI$= zz(o5GMSHld9XuvgIyr(+u0hjbUbQvbgrmJu2F!2!0%~iwJ@7D2X&!x^;p}^OJ)gGz zJ4on5?s=26OlUE?pn9Th&Z&){bBvgLOG#}w>Na!b*8Nj?Tn@}#JYab?@9lO_O*=f0 yVXm(ML)p3OyGih9q~Xy>qoa{7jz)TOAgO(z1}xq7bJod$N8$_* zjH~3^4-B?RLX4~A&4#<*ACBXIc!4s3dH(Jq1am9|q4Ovghzpzqxkx@HEDk^z#QV+O zF2phozUjumH1-+?2(qYs8RvK9SIdEvk3K7Mu;JF8BTWah`4LT_#no$S(v5=9&JfckC8Dmd*JAcPqi+tD3 z!OyDMp_Fkp=YMFq)LWoM!!p$L8&2>;K&*)bf(14&MRZ=EId{*7nMXIqfS!H(9 z4W1K9F+X>5L-33^L9-O+KDcG775>zoh$exmAAwkBj(??4-Vm@1b0iq|3R$LFXk2?L zq2VgyIL~D=xRv@K7hL9sSEn}ADpURAWDb<6%)o;C<7C@v@~sNZv~F}OgqB-`SD42n z?;z%ObLz^-nQrF@E@k%6gs5GHQlIXIu~z%S)ILpp6TJ*=*X}dj=jScT%J~Wq*;FQL zBy%V#|9`sV;$BBnW2??GGe=dYdki6XC}>&5Ua-J!uTGPG-+1~|EK`mCTKzi6BMRaa z>mt#2C5M z`u=j;SZ$VDdFo=m#0fzHpF7zhz?{n@Df0=hVt<@@m#D=}s}IXAQy!}>r#jS&;0WdzT5Q)8CkGzJnPW<5f>)cA zs(-cG|MIifn3+7ZEdJs&W=pK@mbX(7UR=OlUG+OmwEc{*hg;jhV^XD)BM8|VR2}A# zSF%kw>Kj&v`EB3FZ0))S9>&Sc8^|-9eeaNyN$tObgg)e+D|*d@7PASeC)(yb*a&)# z5tmPk4M*K(ZlJnxtexZp3Q5l9W+$a4i99Q+gyjC>|A}_BzQDZ|7fJa(MXp^ dBV8Rxs^4oJmTvoX=j6a6ar%dG{sSH|^Zh_+-edp( diff --git a/reports/chapters/module-3/032-classes.err.log b/reports/chapters/module-3/032-classes.err.log new file mode 100644 index 0000000..e1c1202 --- /dev/null +++ b/reports/chapters/module-3/032-classes.err.log @@ -0,0 +1,28 @@ +Traceback (most recent call last): + File "/home/javi/anaconda3/lib/python3.11/site-packages/myst_nb/core/execute/inline.py", line 120, in code_cell_outputs + self._client.execute_cell( + File "/home/javi/anaconda3/lib/python3.11/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped + return loop.run_until_complete(inner) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/javi/anaconda3/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete + return future.result() + ^^^^^^^^^^^^^^^ + File "/home/javi/anaconda3/lib/python3.11/site-packages/nbclient/client.py", line 1058, in async_execute_cell + await self._check_raise_for_error(cell, cell_index, exec_reply) + File "/home/javi/anaconda3/lib/python3.11/site-packages/nbclient/client.py", line 914, in _check_raise_for_error + raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content) +nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell: +------------------ +my_dog = Animal(age = 5, weight=10, name="Pretzels") +my_dog.bark() +------------------ + + +--------------------------------------------------------------------------- +AttributeError Traceback (most recent call last) +Cell In[27], line 2 + 1 my_dog = Animal(age = 5, weight=10, name="Pretzels") +----> 2 my_dog.bark() + +AttributeError: 'Animal' object has no attribute 'bark' + diff --git a/search.html b/search.html index 7f55589..bb93239 100644 --- a/search.html +++ b/search.html @@ -202,6 +202,7 @@

Module 3: Python II (Advance)

diff --git a/searchindex.js b/searchindex.js index 432d6c4..45e479a 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"": [[8, "Practice1"], [11, "Practice2"], [13, "variables1"], [13, "variables2"], [13, "variables3"], [14, "operators1"], [14, "operators2"], [15, "strings1"], [15, "strings2"], [16, "structures1"], [16, "structures2"], [16, "structures3"], [16, "structures4"], [16, "structures5"], [16, "structures6"], [18, "conditional1"], [18, "conditional2"], [18, "conditional3"], [20, "iterables1"], [20, "iterables2"], [22, "functions1"], [22, "functions2"], [26, "exceptions1"], [26, "exceptions2"]], "1. Classes and Objects": [[27, "classes-and-objects"]], "2. Initialize classes": [[27, "initialize-classes"]], "3. Inheritance": [[27, "inheritance"]], "Adding a new entry": [[16, "adding-a-new-entry"]], "Adding finally and else blocks": [[26, "adding-finally-and-else-blocks"]], "Arguments": [[1, "arguments"]], "Arguments and parameters": [[22, "arguments-and-parameters"]], "Arithmetic Operators": [[14, "arithmetic-operators"]], "Basic Array Manipulations + Calculations": [[28, "basic-array-manipulations-calculations"]], "Basic NumPy Array Functionality": [[24, "basic-numpy-array-functionality"]], "Brief introduction to programming languages": [[9, "brief-introduction-to-programming-languages"]], "Built-in functions": [[22, "built-in-functions"]], "CONCEPTS": [[28, "concepts"]], "Canvas": [[10, "canvas"]], "Cell menu": [[8, "cell-menu"]], "Command mode": [[8, "command-mode"]], "Comparison Operators": [[2, "comparison-operators"], [14, "comparison-operators"]], "Compiled vs Interpreted languages": [[9, "compiled-vs-interpreted-languages"]], "Components": [[8, "components"]], "Comprehension": [[20, "comprehension"]], "Conditions": [[18, "conditions"]], "Constructing": [[16, "constructing"]], "Constructing a dictionary": [[16, "constructing-a-dictionary"]], "Constructing a list": [[16, "constructing-a-list"]], "Control Structures": [[18, "control-structures"]], "Converting Data Types": [[2, "converting-data-types"], [13, "converting-data-types"]], "Creating and calling a function": [[22, "creating-and-calling-a-function"]], "Data Structures": [[16, "data-structures"]], "Data Structures Exercises": [[17, "data-structures-exercises"]], "Data Types": [[2, "data-types"], [28, "data-types"]], "Default Arguments": [[22, "default-arguments"]], "Dictionaries": [[16, "dictionaries"], [20, "dictionaries"]], "Docstring": [[22, "docstring"]], "Edit mode": [[8, "edit-mode"]], "Errors and Exceptions": [[26, "errors-and-exceptions"]], "Examples": [[20, "examples"], [20, "id2"]], "Expressions": [[2, "expressions"], [14, "expressions"]], "Functions": [[22, "functions"]], "General Theory": [[20, "general-theory"]], "Getting started": [[0, "getting-started"]], "Guidelines when passing arguments:": [[22, "guidelines-when-passing-arguments"]], "Handling runtime errors with try and except": [[26, "handling-runtime-errors-with-try-and-except"]], "How You Will Know You Are Learning": [[7, "how-you-will-know-you-are-learning"]], "How will you succeed in this course?": [[7, "how-will-you-succeed-in-this-course"]], "Identity Operators": [[14, "identity-operators"]], "Images are Numerical Data": [[24, "images-are-numerical-data"]], "Immutability": [[15, "immutability"]], "Import Aliases": [[24, "import-aliases"]], "Importing": [[24, "importing"]], "Indentation": [[18, "indentation"]], "Indexing": [[1, "indexing"], [15, "indexing"], [16, "indexing"]], "Inserting + Dropping Array Values": [[28, "inserting-dropping-array-values"]], "Installing": [[24, "installing"]], "Installing & Importing Packages": [[24, "installing-importing-packages"]], "Introduction": [[7, "introduction"], [8, "introduction"], [18, "introduction"], [20, "introduction"], [20, "id1"], [22, "introduction"], [26, "introduction"]], "Iterables": [[20, "iterables"]], "Iterables and Iterators": [[20, "iterables-and-iterators"]], "Iterators": [[20, "iterators"]], "Jupyter Notebooks": [[8, "jupyter-notebooks"]], "JupyterLab": [[10, "jupyterlab"]], "Keyboard Navigation": [[8, "keyboard-navigation"]], "Learning Objectives": [[7, "learning-objectives"]], "Lists": [[16, "lists"], [20, "lists"]], "Local versus Global Variables": [[22, "local-versus-global-variables"]], "Logical Operators": [[2, "logical-operators"], [14, "logical-operators"]], "Loops": [[18, "loops"]], "Metadata": [[1, "metadata"], [2, "metadata"]], "Modal editor": [[8, "modal-editor"]], "More Resources": [[8, "more-resources"]], "Mouse navigation": [[8, "mouse-navigation"]], "Mutability": [[16, "mutability"]], "Nested Loops": [[20, "nested-loops"]], "Notebook Basics": [[8, "notebook-basics"]], "Notebook documents": [[8, "notebook-documents"]], "Notes": [[16, "notes"]], "Numeric Operators": [[2, "numeric-operators"]], "OBJECTIVES": [[28, "objectives"]], "Object ID": [[2, "object-id"]], "Object-Oriented Programming (OOP)": [[27, "object-oriented-programming-oop"]], "Open OnDemand": [[10, "open-ondemand"]], "Operations on lists": [[16, "operations-on-lists"]], "Operator in: check membership": [[15, "operator-in-check-membership"]], "Operators": [[2, "operators"], [14, "operators"]], "Operators and Expressions": [[14, "operators-and-expressions"]], "PREREQUISITES": [[28, "prerequisites"]], "Packing": [[22, "packing"]], "Packing and Unpacking arguments": [[22, "packing-and-unpacking-arguments"]], "Practice": [[6, "practice"]], "Practice excersises": [[26, "practice-excersises"]], "Practice exercise": [[16, "practice-exercise"], [16, "id1"], [16, "id2"], [16, "id3"], [16, "id4"], [16, "id6"]], "Practice exercises": [[13, "practice-exercises"], [14, "practice-exercises"], [15, "practice-exercises"], [18, "practice-exercises"], [20, "practice-exercises"], [22, "practice-exercises"]], "Programming and Data Science": [[9, "programming-and-data-science"]], "Programming paradigms": [[9, "programming-paradigms"]], "Python (Beginner)": [[12, "python-beginner"]], "Python (Intermediate)": [[25, "python-intermediate"]], "Raising exceptions": [[26, "raising-exceptions"]], "Ranges": [[16, "ranges"], [20, "ranges"]], "Reserved names (keywords)": [[13, "reserved-names-keywords"]], "Restarting the kernels": [[8, "restarting-the-kernels"]], "Retrieve a value": [[16, "retrieve-a-value"]], "Returning Values": [[22, "returning-values"]], "Running Code (edit mode)": [[8, "running-code-edit-mode"]], "SOURCES": [[28, "sources"]], "Sets": [[16, "sets"], [20, "sets"]], "Slicing": [[15, "slicing"], [16, "slicing"], [28, "slicing"]], "Some best practices": [[26, "some-best-practices"]], "Some methods": [[16, "some-methods"], [16, "id5"]], "Some useful built-in functions with loops": [[18, "some-useful-built-in-functions-with-loops"]], "Some useful methods": [[16, "some-useful-methods"]], "String Formatting": [[15, "string-formatting"]], "String Methods": [[15, "string-methods"]], "String Operators": [[2, "string-operators"], [15, "string-operators"]], "Strings": [[15, "strings"], [20, "strings"]], "Subsetting a string": [[15, "subsetting-a-string"]], "Summary": [[16, "summary"]], "Tech Stack": [[10, "tech-stack"]], "Tips for creating good functions": [[22, "tips-for-creating-good-functions"]], "Tuples": [[16, "tuples"], [20, "tuples"]], "Unary Operators": [[2, "unary-operators"], [14, "unary-operators"]], "Unpacking": [[22, "unpacking"]], "Using multiple conditions": [[18, "using-multiple-conditions"]], "Variable Names": [[2, "variable-names"]], "Variable Scope": [[22, "variable-scope"]], "Variable naming": [[13, "variable-naming"]], "Variable types": [[13, "variable-types"]], "Variables": [[1, "variables"], [2, "variables"]], "Variables and data types": [[13, "variables-and-data-types"]], "Welcome to DS-1002": [[29, "welcome-to-ds-1002"]], "What is a string?": [[15, "what-is-a-string"]], "What is a variable?": [[13, "what-is-a-variable"]], "Your first Python program!": [[11, "your-first-python-program"]], "break - exit the loop": [[18, "break-exit-the-loop"]], "continue - stop the current iteration": [[18, "continue-stop-the-current-iteration"]], "enumerate()": [[18, "enumerate"]], "for loop": [[18, "for-loop"]], "if and else can be used for conditional processing.": [[18, "if-and-else-can-be-used-for-conditional-processing"]], "using if, elif": [[18, "using-if-elif"]], "using if, elif, else": [[18, "using-if-elif-else"]], "while-loop": [[18, "while-loop"]], "writing if and else as one-liners": [[18, "writing-if-and-else-as-one-liners"]], "zip()": [[18, "zip"]]}, "docnames": ["chapters/01-getting_started", "chapters/02-python-basics", "chapters/04-python-basics", "chapters/module-1/012-intro_python", "chapters/module-1/012-intro_python (copia)", "chapters/module-1/013-intro_R", "chapters/module-1/Practice", "chapters/module-1/about_course", "chapters/module-1/jupyter_notebooks", "chapters/module-1/programming", "chapters/module-1/tech_stack", "chapters/module-1/your_first_program", "chapters/module-2/02-cover", "chapters/module-2/021-variables", "chapters/module-2/022-operators", "chapters/module-2/023-strings", "chapters/module-2/024-structures", "chapters/module-2/0241-structures_exercises", "chapters/module-2/025-conditional", "chapters/module-2/0251-conditional_exercises", "chapters/module-2/026-iterables_and_iterators", "chapters/module-2/0261-functions_exercises", "chapters/module-2/027-functions", "chapters/module-2/In-class-activity-Control", "chapters/module-3/029-packages", "chapters/module-3/03-cover", "chapters/module-3/031-errors_and_exceptions", "chapters/module-3/032-classes", "chapters/module-4/041-numpy", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["chapters/01-getting_started.md", "chapters/02-python-basics.ipynb", "chapters/04-python-basics.ipynb", "chapters/module-1/012-intro_python.md", "chapters/module-1/012-intro_python (copia).md", "chapters/module-1/013-intro_R.md", "chapters/module-1/Practice.ipynb", "chapters/module-1/about_course.md", "chapters/module-1/jupyter_notebooks.ipynb", "chapters/module-1/programming.ipynb", "chapters/module-1/tech_stack.md", "chapters/module-1/your_first_program.ipynb", "chapters/module-2/02-cover.md", "chapters/module-2/021-variables.ipynb", "chapters/module-2/022-operators.ipynb", "chapters/module-2/023-strings.ipynb", "chapters/module-2/024-structures.ipynb", "chapters/module-2/0241-structures_exercises.ipynb", "chapters/module-2/025-conditional.ipynb", "chapters/module-2/0251-conditional_exercises.ipynb", "chapters/module-2/026-iterables_and_iterators.ipynb", "chapters/module-2/0261-functions_exercises.ipynb", "chapters/module-2/027-functions.ipynb", "chapters/module-2/In-class-activity-Control.ipynb", "chapters/module-3/029-packages.ipynb", "chapters/module-3/03-cover.md", "chapters/module-3/031-errors_and_exceptions.ipynb", "chapters/module-3/032-classes.ipynb", "chapters/module-4/041-numpy.ipynb", "index.md"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [2, 8, 9, 10, 11, 13, 14, 16, 18, 20, 22, 24, 26, 27, 28], "0": [1, 2, 9, 11, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28], "0b100101": 22, "0b1101": 22, "0x1": 13, "0x87f408": 22, "0x87f448": 22, "0x87f508": 13, "0x87f648": 13, "1": [1, 2, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 28, 29], "10": [2, 8, 11, 13, 14, 16, 18, 19, 20, 22, 23, 24, 26, 27, 28], "100": [2, 9, 11, 13, 14, 19, 23, 24], "1002": [1, 2, 11, 22, 24], "11": [1, 15, 16, 22, 24, 28], "111": 24, "112": 24, "113": 24, "115": 24, "115mmhg": 20, "117": 24, "118": 24, "12": [13, 20, 27, 28], "120": 20, "122": [], "123": 16, "1234": 22, "1244706300354": 14, "125": [2, 13], "13": [1, 19, 22, 23, 24], "130": [2, 13], "139919121178064": 13, "139919121182192": 13, "14": [2, 13, 24], "14112001": 28, "1416": 13, "15": [9, 14, 20, 22, 24, 28], "16": [18, 22, 24], "176": 15, "18": 1, "19": 2, "1a": [], "1b": [], "2": [1, 2, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 28, 29], "20": [2, 9, 13, 14, 20, 22, 24, 28], "200": 24, "2018": 8, "2019": 24, "202": 24, "2021": 24, "2022": 9, "203": 24, "205": 24, "21": [22, 24], "22": [2, 14, 24], "223": 16, "23": 16, "24": 24, "244": 24, "246": 24, "247": 24, "249": 24, "25": [2, 9, 11, 13, 14, 16, 26, 28], "250": 24, "255": 24, "256": [2, 13, 22], "26": [15, 16, 22, 24], "27": 16, "278": [2, 13], "2794155": 28, "28": 16, "29": 16, "2d": 28, "3": [1, 2, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 28, 29], "30": [16, 21, 22, 24, 28], "300": [14, 24], "31": 24, "32": 24, "33": [18, 24], "332": 16, "34": [24, 26], "35": [2, 13, 14, 24, 28], "356": 24, "357": 24, "359": 24, "36": 24, "360": 24, "362": 24, "37": [15, 22], "38": [], "3a": 19, "3b": 19, "3d": 28, "3foo": 13, "4": [2, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 28, 29], "40": [16, 20, 24, 28], "400": 24, "404": 24, "405": 24, "406": 24, "407": 24, "408": 24, "409": 24, "410": 24, "41211849": 28, "42": [2, 28], "43": 2, "44": [], "45": [22, 28], "456": 16, "5": [1, 2, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29], "50": [16, 24, 28], "500": [24, 28], "51": 24, "52": 24, "53": [16, 22, 24], "54402111": 28, "55": [16, 24], "56": 24, "59": 16, "5dl": 20, "5mg": 20, "6": [2, 8, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 28, 29], "60": 22, "64": [21, 22, 26], "6569866": 28, "67": 13, "7": [16, 18, 20, 22, 24, 26, 28], "74": [], "75": 14, "7568025": 28, "76": [], "777": 16, "8": [1, 2, 13, 14, 18, 19, 20, 21, 22, 24, 26, 27, 28], "80": 16, "82": [], "84147098": 28, "8722813232690143": 28, "8909800": 13, "897": 16, "9": [1, 2, 13, 14, 16, 19, 21, 23, 24, 26, 28], "90": [], "90929743": 28, "91": 22, "912": 22, "95892427": 28, "98935825": 28, "99": 16, "A": [1, 2, 8, 9, 11, 13, 14, 16, 22, 27, 28], "And": [11, 15, 22, 27], "As": [7, 8, 9, 11, 15, 20, 26, 27, 29], "At": 22, "Be": [18, 20, 22], "But": [7, 13, 16, 18, 22, 26, 27], "By": [7, 13], "FOR": 18, "For": [1, 2, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 22], "IF": 18, "If": [2, 7, 8, 9, 14, 15, 16, 18, 19, 22, 23, 26, 28], "In": [1, 2, 8, 9, 10, 11, 13, 14, 15, 16, 18, 20, 22, 24, 26, 27, 28], "It": [1, 9, 15, 16, 18, 22, 23, 24, 26, 27], "NO": 27, "NOT": 16, "No": [2, 16, 24], "Not": [], "On": 9, "One": [15, 22, 28], "Or": [1, 13, 22, 26], "THE": 7, "That": 16, "The": [2, 7, 8, 9, 10, 11, 13, 14, 15, 16, 18, 20, 22, 26, 27, 28, 29], "Their": [10, 20], "Then": [6, 8, 11, 14, 22, 23], "There": [2, 8, 13, 14, 20, 26, 28], "These": [7, 8, 9, 13, 16, 22, 26], "To": [9, 15, 16, 18, 20, 22, 24, 27], "With": [8, 22, 27], "_": [1, 2, 13, 22], "__abs__": 22, "__add__": 22, "__and__": 22, "__bool__": 22, "__ceil__": 22, "__divmod__": 22, "__doc__": 22, "__eq__": 22, "__float__": 22, "__floor__": 22, "__floordiv__": 22, "__format__": 22, "__ge__": 22, "__getattribute__": 22, "__getnewargs__": 22, "__gt__": 22, "__hash__": 22, "__index__": 22, "__init__": [24, 27], "__int__": 22, "__invert__": 22, "__le__": 22, "__lshift__": 22, "__lt__": 22, "__main__": 22, "__mod__": 22, "__mul__": 22, "__ne__": 22, "__neg__": 22, "__new__": 22, "__or__": 22, "__pos__": 22, "__pow__": 22, "__radd__": 22, "__rand__": 22, "__rdivmod__": 22, "__repr__": 22, "__rfloordiv__": 22, "__rlshift__": 22, "__rmod__": 22, "__rmul__": 22, "__ror__": 22, "__round__": 22, "__rpow__": 22, "__rrshift__": 22, "__rshift__": 22, "__rsub__": 22, "__rtruediv__": 22, "__rxor__": 22, "__setattr__": 27, "__sizeof__": 22, "__sub__": 22, "__truediv__": 22, "__trunc__": 22, "__xor__": 22, "_foo": 13, "_io": 24, "_parse_uri": 24, "_plugin": 24, "a_arrai": 24, "a_list": 24, "ab": 22, "abl": [8, 27], "about": [7, 9, 22, 27], "abov": [6, 7, 8, 16, 17, 18, 19, 21, 22, 23, 24], "absenc": 16, "absolut": 22, "absolute_valu": 22, "academia": 9, "accept": [2, 14, 22], "access": [9, 10, 13, 15, 16, 18, 22], "accomod": 9, "accur": 22, "achiev": 16, "act": [14, 27], "action": [8, 18, 22, 26], "activ": [7, 8], "actual": [18, 22, 27], "acycl": 28, "ad": 24, "adapt": 11, "add": [1, 14, 16, 17, 18, 19, 22], "add_u": 1, "addit": [2, 7, 11, 13, 14, 22, 26], "addition": [7, 29], "address": [9, 13, 16, 22], "administr": 9, "advanc": [18, 22, 29], "advantag": 27, "aei": 15, "affect": [22, 27], "aforement": [8, 13], "africa": 27, "after": [14, 15, 16, 18, 22, 23, 26], "afton": 10, "ag": [1, 2, 26, 27], "again": [2, 22, 27], "against": 22, "age_data": 26, "aim": [13, 22, 27], "aka": 11, "alert": 16, "algorithm": [2, 27], "alia": 24, "all": [1, 7, 8, 9, 13, 15, 20, 22, 24, 26, 27, 28], "allow": [1, 2, 8, 9, 10, 13, 14, 15, 16, 20, 22, 24, 27], "almost": [9, 18, 20], "along": [7, 9, 13], "alpha": [1, 2], "alreadi": [15, 22, 24], "also": [2, 7, 8, 9, 11, 13, 14, 15, 16, 20, 22, 24, 26, 27, 28, 29], "alt": 8, "altern": [9, 20], "although": [9, 15], "alwai": [2, 13, 16, 22, 26], "am": [11, 15, 20, 27], "among": [9, 24], "an": [1, 2, 7, 8, 9, 11, 13, 14, 15, 16, 18, 19, 20, 21, 22, 24, 26, 27, 28, 29], "anaconda3": 24, "analys": 9, "analysi": [9, 10], "ani": [1, 6, 8, 9, 13, 15, 16, 18, 20, 22, 24, 27], "anim": 27, "animal_3": 27, "animal_bob": 27, "animal_john": 27, "annoi": 18, "annot": 22, "anonym": 7, "anoth": [8, 9, 13, 16, 18, 20, 22, 27, 28], "answer": [7, 13, 14, 15, 16, 17, 18, 20, 22, 26], "anybodi": 18, "anyon": 22, "anyth": [7, 11, 22], "anywher": [2, 14], "apostroph": 15, "appeal": 9, "appear": [9, 16], "append": [16, 20, 22], "appl": [1, 2, 18], "apple_index": 1, "appli": [8, 9, 15, 16, 17, 24], "applic": [8, 9, 10], "approach": [7, 9, 20, 22], "appropri": [2, 14, 26], "ar": [1, 2, 8, 9, 10, 11, 13, 14, 15, 16, 18, 20, 22, 26, 27, 28], "arang": 28, "arbitrari": [18, 20, 22], "area": [8, 9], "arg": [21, 22, 24], "arg1": 11, "arg2": 11, "arg3": 11, "arg_expansion_exampl": 22, "argu": 9, "argument": [11, 13, 16, 21, 28], "argunemnt": 16, "arithmet": [2, 11, 16, 26], "around": [7, 16], "arr": [8, 28], "arr1": 28, "arr2": 28, "arr2d": 28, "arr3d": 28, "arrai": [13, 22], "arthimet": 19, "arthur": 16, "artifici": 9, "as_grai": 24, "as_integer_ratio": 22, "asarrai": 24, "ask": [7, 11], "asp": [], "aspect": 15, "assert": [2, 13], "assign": [2, 13, 14, 15, 16, 22], "assist": 7, "associ": [2, 7, 14, 16, 22], "assum": 2, "assumpt": 7, "asterisk": 22, "astyp": 28, "async": [2, 13], "athlet": 22, "attempt": [7, 26], "attent": 26, "attribut": [15, 16, 17, 22, 27], "auc": 20, "author": 8, "autom": 9, "automat": [2, 13], "avail": [8, 22, 27], "avoid": [9, 26], "await": [2, 13], "awar": 22, "ax": 24, "axi": [9, 28], "ayotnom": 15, "b": [2, 8, 13, 14, 16, 22, 26, 27], "b_arrai": 24, "b_list": 24, "back": [8, 11, 15, 16, 28], "background": [7, 8], "bad": 26, "banana": [1, 2, 18], "bar": [16, 22], "bari": 18, "barplot": 9, "base": [7, 9, 15, 20, 24, 29], "bash": [9, 18], "basic": [1, 2, 7, 14, 29], "baz": 16, "beat": 9, "becaus": [9, 20, 22, 26, 27], "becom": [7, 8, 18, 27], "been": [8, 9, 16, 18, 26], "befor": [6, 7, 8, 9, 16, 22, 26, 28], "beforehand": 11, "begin": [15, 22], "beginn": 9, "behav": 20, "behavior": [18, 22, 27], "being": [2, 9, 18, 19], "believ": [9, 18], "bell": 20, "belong": [18, 22], "below": [1, 6, 8, 16, 19, 22], "benefit": [], "best": [7, 22, 27], "better": [7, 9, 26], "betwe": 2, "between": [2, 11, 13, 15, 22], "bewar": [8, 18], "beyond": 9, "big": [16, 22], "bilbao": 18, "bill": 8, "billi": 16, "bin": 22, "binari": [9, 22], "birth": [16, 17], "bit": [22, 28], "bit_count": 22, "bit_length": 22, "black": 27, "blank": 15, "blink": 8, "block": [2, 14, 18, 22], "blog": 8, "blue": 8, "blueberri": 18, "bob": [16, 27], "bodi": 22, "book": [24, 29], "bool": [2, 13, 21, 22], "bool_var": [2, 13], "boolean": [1, 2, 13, 14, 15, 16, 17, 22], "border": 8, "borderand": 8, "both": [7, 8, 9, 10, 13, 15, 16, 18, 19, 22, 23, 24, 26, 27], "bottom": 28, "box": 27, "boxplot": 8, "brace": [15, 16, 18], "bracket": [15, 16], "break": [2, 13, 15, 16, 22], "breakthrough": 7, "brief": [7, 29], "briefli": 9, "broke": [], "browser": 10, "bucket": [18, 23], "buffer": 22, "build": [2, 14, 18, 20], "built": [13, 24, 27], "builtin": 22, "bulk": 22, "burden": 7, "button": [2, 8, 15], "byte": [22, 24], "bytearrai": 22, "byteord": 22, "c": [8, 9, 16, 18, 22], "calcul": [11, 14, 18], "call": [1, 2, 7, 11, 13, 15, 16, 18, 20, 21, 24, 26, 28], "call_plugin": 24, "camel": 13, "can": [1, 2, 7, 8, 9, 10, 11, 13, 14, 15, 16, 20, 21, 22, 26, 27, 28], "cannot": [1, 2, 15, 22, 26], "canva": 7, "capabl": [7, 20], "capit": 13, "captur": 7, "care": [18, 20], "carefulli": 18, "case": [1, 2, 11, 13, 14, 15, 19, 20, 22, 23, 26], "cast": [2, 13], "catch": 26, "catchal": 18, "categor": 9, "categori": 9, "caus": [18, 22, 26], "caution": [], "cautiou": 22, "ceil": 22, "cell": [1, 2, 6, 11, 13, 15, 16, 17, 18, 19, 20, 22, 24, 26], "center": 27, "certain": [11, 13, 16, 22, 26], "challeng": 7, "chang": [6, 8, 9, 16, 17, 18, 22, 27], "channel": 24, "chapter": 24, "charact": [1, 2, 13, 15, 18], "character": 16, "characterist": 15, "charlottesvil": 18, "chatch": 26, "cheat": 8, "check": [2, 8, 13, 14, 16, 18, 19, 20, 21, 24, 26], "check_positive_numb": 26, "cherri": 18, "choic": 9, "chosen": 22, "chunk": 13, "cinderella": 20, "citi": 18, "clariti": [20, 22], "class": [2, 7, 11, 13, 15, 22, 26], "classess": 27, "classic": 8, "classs": 27, "claus": 26, "clayton": 16, "clean": [7, 9], "clean_word": 20, "cleaner": 26, "cleanup": 26, "clearli": [22, 26], "cli": [7, 29], "click": 8, "clint": 16, "club": 22, "cluster": 10, "cm": [15, 27], "cnn": 20, "cnn_1": 20, "cnn_2": 20, "co": [8, 28], "coconut": 16, "code": [2, 7, 9, 10, 11, 18, 19, 20, 22, 23, 24, 26, 27, 29], "coffe": [16, 17], "colab": 24, "collect": [13, 16, 27], "colon": [22, 26], "column": [24, 28], "com": 9, "combin": [2, 6, 7, 8, 10, 14, 15, 16, 18, 21, 22, 24, 28], "come": [7, 9, 11, 15, 20, 22, 24, 27], "comfort": 7, "comma": [13, 16], "command": [7, 10, 24, 29], "comment": [2, 7], "common": [2, 7, 9, 11, 14, 15, 20, 22, 24, 28, 29], "commonli": [7, 9, 29], "commun": [7, 9], "compact": [16, 20], "compar": [9, 20, 22], "comparison": [], "competit": 9, "compil": 11, "complement": 22, "complet": [7, 8, 22, 26], "complex": [1, 2, 7, 9, 14, 18, 22], "complic": [14, 20], "compon": [7, 20, 22], "compos": 10, "comprehens": 22, "comput": [7, 8, 9, 10, 11, 18, 19], "compute_vari": 22, "compute_variances_sort_save_print": 22, "concaten": [2, 15, 16, 26, 28], "concentr": 14, "concept": [7, 9, 20, 29], "concis": [9, 20, 22], "conclud": [7, 29], "concret": 27, "condit": [19, 20, 22], "conditon": 18, "conduct": 9, "confid": 7, "confus": 22, "conjug": 22, "conjunct": [2, 14], "consecut": 15, "consid": [20, 22], "consist": [8, 22, 28], "consol": 11, "construct": 20, "constructor": 27, "consum": 27, "contain": [1, 2, 8, 9, 11, 13, 16, 17, 20, 21, 22, 27, 28], "content": [7, 8], "context": [22, 27], "continu": [2, 7, 13, 28], "contourpi": 24, "contrast": [9, 11, 13, 16, 18, 20], "control": [7, 28, 29], "convent": [9, 13, 22], "convers": 13, "convert": [8, 9, 15, 20, 22], "convet": 13, "copi": [8, 15, 19, 28], "core": 24, "correct": [18, 22], "correspond": [15, 16], "could": [16, 18, 22, 24, 27, 28], "count": [9, 22], "countri": 18, "coupl": [8, 18], "cours": [1, 2, 9, 10, 11, 13, 20, 28, 29], "courses_it": 20, "cover": [7, 9, 13, 16, 20, 29], "creat": [1, 2, 6, 8, 9, 11, 13, 14, 15, 16, 19, 20, 21, 27, 28], "creation": 8, "csv": 9, "ctrl": 8, "curli": 15, "current": [8, 22, 24], "cursor": 8, "curv": 9, "cut": [2, 14], "cvill": 18, "cycler": 24, "d": [1, 2, 8, 11, 14, 16, 20, 22, 24], "dag": 28, "dai": [8, 9, 18, 22], "daili": [7, 29], "danger": 18, "darrel": 16, "data": [1, 7, 8, 10, 14, 15, 18, 19, 20, 22, 27, 29], "data1": 28, "data2": 28, "datafram": 9, "dataset": 8, "datatyp": 16, "dateutil": 24, "datum": 20, "debug": [7, 10, 26, 29], "decim": [2, 13], "decis": 7, "declar": [24, 28], "decypher_format_arg": 24, "dedic": 8, "deep": [9, 20], "def": [1, 2, 13, 21, 22, 24, 26, 27], "default": [16, 20, 26, 27, 28], "defend": 7, "defin": [1, 2, 13, 18, 19, 20, 21, 22, 26, 27], "definit": [22, 27], "del": [2, 13], "delet": [2, 13, 28], "delight": 9, "delin": 13, "demonstr": [], "denomin": [22, 26], "depend": [8, 9, 18], "depth": 20, "describ": [22, 27], "descript": [1, 2, 22], "descriptor": 22, "design": [9, 22], "despin": [8, 9], "detail": [8, 10, 13, 15, 20, 22], "determin": [13, 22], "develop": [1, 7, 9, 29], "deviat": 28, "devic": 7, "dialog": 8, "dict": [16, 18, 19, 20, 22], "dict_item": 16, "dict_kei": 16, "dict_valu": 16, "dictionari": [1, 15, 17, 18, 22], "dictionary1": 16, "dictionary2": 16, "dictionary3": 16, "did": [11, 16, 19, 23], "didn": 22, "die": 15, "diff": 21, "differ": [1, 2, 7, 8, 9, 13, 15, 16, 18, 21, 22, 27], "difficult": 28, "dimens": [24, 28], "dimension": [24, 28], "dir": 24, "direct": 28, "directli": [9, 11, 16], "directori": 24, "dirnam": 24, "disappear": 8, "discuss": [2, 7], "divers": [7, 9], "divid": [14, 26], "divide_numb": 26, "divis": [2, 11, 14, 19, 23, 26], "divisbl": [19, 23], "divmod": 22, "dl": 20, "dn": 24, "do": [2, 6, 8, 11, 13, 14, 15, 16, 18, 19, 20, 22, 26, 27], "doc": [22, 26, 28], "docencia": 24, "docstr": 21, "document": [10, 20, 22], "documento": 24, "doe": [8, 15, 16, 18, 19, 20, 22, 23, 24, 26, 27], "doesn": [], "dog": 27, "domain": 9, "don": [7, 8, 15, 16, 18, 20, 22], "done": [8, 11, 27], "door": 7, "dot": 15, "down": [8, 11, 17, 22], "dplyr": 9, "draw": 8, "drop": 9, "drop_end": 28, "drop_second_index": 28, "drop_start": 28, "ds1002": [24, 28], "dtype": 28, "due": 9, "dummi": [19, 22], "dure": [7, 20, 26, 29], "dynam": [2, 15], "e": [2, 11, 13, 14, 15, 16, 18, 20, 22, 26, 27, 28], "each": [2, 8, 9, 13, 14, 16, 18, 19, 20, 21, 22, 24, 27, 28], "earli": [7, 18], "earlier": [13, 18], "easi": [9, 11, 27], "easier": [9, 22, 26, 27], "easili": 9, "economi": 22, "edit": 6, "edu": 10, "educ": 10, "edureka": 8, "effect": 2, "effici": [7, 8, 9, 20, 29], "either": [6, 8, 18, 19, 22, 23, 26], "elabor": [], "element": [1, 2, 15, 16, 18, 20, 24, 26, 28], "elementari": 2, "elif": [2, 13, 19, 23], "elmnt": 16, "els": [2, 13, 19, 20, 21, 22, 24], "email": 7, "eman": 15, "embed": 8, "emploi": [2, 14], "empti": 16, "en": 28, "enabl": [8, 10, 11], "encapsul": [7, 27], "enclos": [15, 20, 22], "encount": [22, 26], "encourag": 7, "end": [15, 16, 18, 20, 22, 26, 28], "endswith": [2, 15], "enhanc": 11, "enjoi": 7, "enough": 18, "ensur": 26, "enter": [8, 16], "entir": [8, 9, 28], "entiti": 11, "entri": [22, 26], "enumer": [20, 22, 26], "environ": [7, 8, 10, 13], "equal": [2, 14, 21, 22, 23], "equat": [8, 10], "error": [21, 22, 27, 29], "esc": 8, "essenti": [7, 9, 20, 29], "etc": [1, 15], "eval": 11, "evalu": [2, 11, 14, 16, 18, 19, 20, 23], "even": [2, 7, 9, 13, 14, 18, 19, 22, 26, 27], "everi": [2, 7, 9, 13, 15, 18, 24, 28], "every_oth": 28, "everybodi": [], "everyth": [8, 9, 15], "exactli": 22, "exampl": [1, 2, 8, 9, 11, 13, 14, 18, 19, 22, 23, 26, 27, 28], "excel": 9, "except": [2, 13, 15, 20, 24], "exceptiontyp": 26, "exceptiontype1": 26, "exceptiontype2": 26, "exceptiontype3": 26, "excercis": 16, "exclud": 20, "execut": [7, 9, 10, 11, 18, 20, 26], "exhibit": 22, "exist": [15, 20, 24], "expect": [7, 18, 26], "experi": [7, 9], "explain": 22, "explan": [7, 10], "explicit": 9, "explor": [9, 10, 22], "exponenti": [2, 14], "express": [9, 15, 16, 18, 20, 29], "expresss": [2, 14], "extens": [8, 9, 24, 27], "extent": 7, "extern": 24, "extra": 20, "extract": [2, 15], "f": [15, 16, 18, 20, 22, 24, 26, 27], "facilit": 10, "fact": [9, 22, 27], "fail": [22, 26], "fair": 9, "fall": 20, "fals": [2, 9, 13, 14, 15, 16, 20, 21, 22, 24, 27], "familiar": [8, 9, 10, 18], "fan": 20, "far": [13, 15, 18, 20, 27], "fast": 24, "faster": 27, "fastx": 10, "father": 15, "favorite_numb": 1, "fcn": 22, "fcn_bad_arg": 22, "fcn_force_keyword": 22, "fcn_nothing_to_return": 22, "fcn_swapped_arg": 22, "featur": [7, 9, 15, 16, 27, 29], "feedback": 7, "feel": [7, 9], "femal": 27, "few": [8, 29], "field": 27, "figur": 2, "file": [8, 9, 10, 11, 22, 24, 29], "file_or_url_context": 24, "filenotfounderror": 24, "filesystem": 8, "fillna": 9, "film": 20, "filter": [9, 20, 24], "final": [2, 9, 11, 13, 15], "find": [1, 2, 7, 9, 16, 22, 24, 26, 28], "first": [1, 2, 9, 15, 16, 17, 18, 22, 23, 24, 28], "firstval": 1, "fit": 27, "fix": 22, "flag": 13, "flip": 28, "float": [2, 13, 16, 22, 28], "float64": 28, "float_arr": 28, "float_var": [2, 13], "floor": [2, 14, 22], "flow": 18, "flush": 22, "fn": 24, "fname": 24, "focu": [7, 9], "focus": [7, 9, 29], "folder": 8, "follow": [2, 7, 8, 9, 11, 13, 14, 16, 18, 19, 22, 23, 26, 27], "fonttool": 24, "foo": [16, 22, 28], "foomax": 28, "foomean": 28, "foomin": 28, "foosin": 28, "foostd": 28, "forc": [22, 27], "forcibli": 22, "forget": 26, "form": [11, 20, 22, 27, 28], "formal": 9, "format": [7, 8, 10, 18, 22, 24], "format_hint": 24, "format_spec": 22, "formatt": 22, "forth": [2, 14], "fortran": [9, 18], "found": 18, "four": [2, 14], "frame": 9, "free": 7, "from": [2, 7, 8, 9, 13, 14, 15, 16, 17, 18, 20, 21, 22, 24, 26, 27], "from_byt": 22, "fruit": 1, "func": 24, "function": [1, 2, 7, 9, 11, 13, 15, 16, 20, 21, 26, 27, 28, 29], "function_nam": 11, "fundament": [7, 9, 20, 29], "further": 20, "futur": [7, 10, 13, 22, 26], "g": [8, 15, 16, 18, 20, 22, 26, 27], "game": 9, "gave": 22, "gbm": 22, "geeksforgeek": [], "gener": [9, 15, 18, 22, 28], "get": [1, 2, 8, 9, 10, 11, 13, 15, 16, 18, 20, 24, 28, 29], "getattr": 22, "ggplot2": 9, "git": 7, "github": [7, 29], "give": [2, 7, 11, 13, 14, 15, 18, 22, 26, 28], "given": [2, 7, 8, 13, 15, 16, 17, 18, 20, 22, 24, 29], "global": [2, 13], "go": [7, 10, 11, 15, 20, 24], "goal": 7, "god": 27, "goe": 18, "gone": 7, "goo": 28, "good": [2, 7, 14, 18], "goodby": 2, "googl": 24, "got": 18, "grammar": 9, "grape": 18, "graph": 28, "graphic": [9, 10], "great": [9, 11, 22], "greater": [2, 9, 14], "green": 8, "greet": [11, 27], "grei": 8, "group": [2, 7, 14, 22, 27], "grouped_boxplot": 8, "guess": 7, "guid": 7, "h": 9, "ha": [2, 8, 9, 11, 13, 14, 18, 20, 21, 26, 27, 28], "habit": 7, "had": 19, "half": 1, "hand": [7, 9, 16], "handi": [16, 27], "handl": [7, 8, 9, 29], "handler": 26, "happen": [1, 8, 26], "hard": 26, "hasattr": 24, "hash": [16, 22], "haskel": 9, "have": [1, 2, 7, 8, 9, 10, 13, 14, 15, 16, 18, 22, 24, 26, 27, 28], "height": 27, "hello": [2, 11, 13, 15, 22], "help": [7, 8, 9, 22, 27], "here": [2, 7, 8, 9, 11, 13, 14, 15, 16, 18, 20, 22, 24, 26, 27, 28], "hesit": 7, "hex": [13, 22], "hexadecim": 13, "hide": 27, "hierarchi": 28, "high": 9, "higher": [9, 28], "highli": 9, "hint": [18, 19, 23], "hit": [2, 15], "hold": [2, 13, 22], "home": 24, "host": 22, "hotel": 24, "hour": 7, "how": [2, 9, 11, 13, 14, 18, 19, 20, 22, 23, 26, 27], "howev": [9, 13, 14, 16, 18, 22, 24, 27], "hpc": 10, "html": [8, 22, 26, 28], "http": [8, 9, 11, 16, 17, 22, 26, 28], "hue": 8, "human": 27, "i": [1, 2, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29], "id": [13, 14, 22], "idea": [7, 8, 15, 22], "ideal": 10, "ident": 2, "identifi": [7, 26, 27], "ii": [20, 26, 29], "illustr": [], "imag": [8, 22], "imageio": 24, "imageio_imread": 24, "imageio_plugin": 24, "imagin": 19, "imaginari": 22, "img": 24, "immut": [2, 16], "imopen": 24, "imopen_arg": 24, "imper": 18, "implement": [9, 11, 20, 27], "impli": 2, "implicitli": [2, 20], "import": [2, 7, 8, 9, 13, 15, 16, 17, 18, 20, 22, 28, 29], "importantli": [8, 20], "impos": 18, "improv": 20, "imread": 24, "imshow": 24, "includ": [7, 8, 9, 15, 16, 18, 19, 20, 22, 23, 26, 29], "incomplet": 7, "incorpor": [15, 26], "incorrect": [7, 22, 26], "increas": [19, 23], "increasingli": 7, "increment": [2, 14], "indent": [22, 26], "indentationerror": 26, "indenten": 26, "index": [9, 17, 18, 20, 22, 24, 28], "indexerror": 24, "indic": [1, 8, 15, 20, 22, 26, 28], "individu": [8, 15], "industri": 9, "ineffici": 27, "inequ": [2, 14], "infer": 22, "info": [2, 8, 15, 16, 22], "inform": [7, 13, 15, 22, 27], "inher": 15, "inherit": 22, "input": [8, 11, 21, 22, 26], "insert": [8, 16, 22], "insid": [8, 15, 18, 22, 26], "instal": 7, "instanc": [22, 27], "instanti": 27, "instead": [1, 13], "instent": 27, "instruct": [9, 11], "instructor": [7, 11, 22], "int": [2, 13, 14, 16, 22, 26], "int32": 28, "int64": 28, "integ": [1, 2, 13, 14, 16, 18, 19, 21, 22, 28], "integer_var": 13, "integr": [10, 22], "intellig": 9, "intens": 9, "inter": [18, 20], "interact": [8, 10, 11, 13], "interchang": 22, "interest": 18, "interfac": [7, 8, 10, 27], "intermedi": [7, 29], "internat": 11, "interpet": 20, "interpret": [2, 7, 11], "intersect": 16, "introduc": [6, 7, 8, 18, 20, 29], "introduct": [15, 28, 29], "introductori": [7, 29], "introspect": 8, "intuit": 9, "invalid": [1, 13, 24, 26], "invalu": 7, "invers": 26, "invok": [], "involv": 9, "io": [8, 24], "io_mod": 24, "ipynb": 8, "ipython": 11, "is_odd": 20, "is_read_request": 24, "isinst": [2, 13, 22, 24], "isn": [22, 24], "itali": 18, "item": [8, 15, 16, 18, 20, 22, 28], "iter": [16, 19, 22, 23], "its": [1, 2, 7, 8, 9, 13, 14, 15, 16, 18, 20, 22, 24, 26, 27, 29], "itself": [1, 22], "ix": 18, "i\u00f1igo": 15, "j": [8, 18, 20], "java": 9, "javascript": 9, "javi": [15, 24], "javier": [11, 15, 22], "job": 10, "john": [16, 27], "join": [13, 15], "jpg": 24, "judgment": 7, "jupyt": [7, 10, 11], "jupyter_notebook_cheatsheet_edureka": 8, "just": [2, 8, 11, 13, 14, 15, 16, 22, 26, 27], "k": [8, 20], "kaggl": 9, "kaggle_survey_2022_respons": 9, "keep": [1, 7, 16, 18, 20, 22, 26], "kei": [1, 15, 16, 18, 20, 22], "key_express": 20, "keyowrd": 26, "keyworad": [6, 8], "keyword": [2, 14, 22, 26, 28], "keywork": 22, "kill": 15, "kind": [11, 19, 20, 24, 26, 27], "kiwi": 18, "kiwisolv": 24, "know": [1, 13, 18, 22], "known": [9, 11, 18, 22], "kumquat": 18, "kwarg": [22, 24], "labels": 9, "lack": 27, "lambda": [2, 9, 13], "languag": [2, 7, 8, 10, 11, 18, 22, 27, 29], "languages_dat": 9, "larg": 20, "largest": [2, 14], "last": [2, 13, 15, 16, 18, 20, 22, 24, 26, 28], "lastli": 22, "later": [2, 13, 16, 22, 28], "latex": [8, 10], "launch": 11, "layer": 20, "layman": 13, "lazili": 20, "lazy_load": 24, "lbp": [], "lead": 15, "learn": [8, 9, 10, 13, 14, 15, 16, 18, 20, 22, 26, 27], "learnbyexampl": [16, 17], "least": [21, 22], "left": [2, 8, 16], "legaci": 24, "legacy_mod": 24, "len": [15, 16, 21, 22, 28], "length": [15, 21, 22], "lengthi": 20, "less": [2, 9, 14, 18, 19], "lesser": 7, "lesson": [10, 11, 13, 14, 15, 16, 18, 20, 22, 26], "let": [8, 10, 11, 16, 18, 20, 22, 26], "letter": [1, 2, 13, 16, 17, 20], "level": [9, 28], "leverag": 9, "lib": 24, "librari": [7, 9, 22, 26, 29], "lifetim": 22, "like": [1, 2, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 24, 27], "likewis": 15, "line": [1, 2, 7, 9, 10, 11, 13, 15, 16, 18, 20, 22, 24, 26, 29], "linear": 8, "linspac": 24, "lisp": 9, "list": [1, 2, 8, 13, 14, 15, 17, 18, 19, 22, 26, 28], "list1": 16, "list2": 16, "list3": 16, "list_iter": 20, "liter": [2, 13, 14, 15], "littl": 22, "live": [8, 10, 20], "ll": 7, "load": [8, 11], "load_dataset": 8, "local": [7, 8], "locat": 13, "log": 26, "logic": [7, 9], "logreg": 22, "long": [7, 13, 19], "longer": 8, "look": [9, 10, 11, 18, 20, 22, 28], "lookfor": 18, "loop": [11, 16, 19, 21, 22, 23], "lot": [2, 9], "low_memori": 9, "lower": [9, 13, 15, 18, 20, 28], "lowercas": [13, 20], "lowest": 22, "m": [2, 8, 14, 15, 20], "machin": [9, 10, 11], "made": 8, "mai": [7, 9, 18, 20, 22, 26, 27], "main": [8, 9, 15], "maintain": [7, 8, 22, 27], "make": [2, 7, 9, 10, 14, 17, 18, 19, 22, 23, 27], "manag": [7, 9], "manage_plugin": 24, "mango": 18, "mani": [2, 7, 8, 9, 11, 13, 14, 15, 18, 19, 22, 23], "manipul": [2, 7, 9, 14, 27], "manual": 20, "map": [8, 16, 27], "mardown": 8, "margin": 8, "markdown": [6, 8, 10, 17], "mask": 24, "match": 26, "mate": 26, "materi": 7, "math": [11, 28], "mathemat": [2, 9, 11, 14], "mathemt": 2, "matlab": [9, 18], "matplotlib": [9, 24], "matter": 22, "max": [18, 24, 27, 28], "max_it": [19, 23], "max_val": [18, 19], "maximum": [18, 19], "mayb": [18, 26], "me": [9, 18], "mea": 20, "mean": [2, 8, 9, 11, 13, 14, 15, 16, 22, 24, 27, 28], "meaning": [22, 26], "meas_mmhg": 20, "meas_mmhg_dl": 20, "measur": 20, "mechan": 27, "media": 8, "meet": 20, "membership": [2, 14], "memori": [2, 9, 13, 14, 20, 22], "mention": [11, 13, 15, 16, 20, 27], "menu": 6, "menubar": 8, "messag": [11, 15, 18, 26, 27], "met": [18, 20], "method": [7, 9, 17, 20, 22, 27], "metric": 20, "mg": 20, "microcosm": 2, "might": [1, 11, 18], "min": [24, 28], "mind": [1, 20], "minim": 7, "minu": 16, "miscellan": 29, "miss": [16, 22, 26], "mistak": 26, "mix": [15, 16, 20, 27], "ml": 20, "mmhg": 20, "mmm": 27, "mod": 22, "mode": [6, 11, 24], "model": [18, 20, 22, 27], "model_arch": 20, "modern": 9, "modif": 8, "modifi": [8, 13, 16, 27, 28], "modul": [7, 22, 24, 27, 28, 29], "modulo": [19, 23], "modulu": [2, 14], "moment": 27, "monitor": 10, "month": [16, 17], "montoya": 15, "more": [1, 2, 7, 9, 13, 14, 15, 16, 17, 20, 22, 26, 27, 29], "moreov": 9, "most": [2, 7, 8, 9, 10, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 29], "mous": 6, "move": [2, 15], "much": [7, 9, 20, 22, 27], "multi": 9, "multidimension": 28, "multipl": [2, 9, 10, 11, 13, 14, 16, 22, 26], "multipli": [14, 16, 17], "must": [1, 2, 13, 16, 22, 24, 26], "mutabl": 9, "my": [11, 15], "my_anim": 27, "my_arg": 22, "my_args2": 22, "my_args_dict": 22, "my_dog": 27, "my_nam": 15, "my_rang": 20, "my_var": [2, 14], "myarr": 28, "myit": 20, "mylist": 16, "myset": 20, "mystr": 15, "myvar": 13, "n": [2, 15, 22, 27], "n_ob": 9, "naive_bay": 22, "name": [1, 7, 11, 15, 16, 17, 18, 21, 22, 26, 27, 29], "nameerror": [2, 13, 22, 26], "narr": [8, 10], "nativ": 22, "natur": 9, "navig": 7, "nbconvert": 8, "ndarrai": [24, 28], "ndigit": 22, "ndim": [24, 28], "necessari": 22, "need": [2, 7, 8, 9, 13, 15, 16, 20, 22, 26, 27], "neg": [13, 15, 22, 26], "negate_coord": 22, "neglig": 9, "nest": [8, 16, 28], "networkx": 24, "new": [1, 7, 8, 9, 13, 15, 20, 22, 27, 28], "new_anim": 27, "new_foo": 28, "newer": 27, "newlin": 22, "next": [2, 11, 15, 16, 20, 22], "nice": [15, 28], "nlp": 20, "nobel": 7, "non": [16, 22], "none": [2, 13, 21, 22, 24], "nonloc": [2, 13], "nonneg": 21, "normal": [8, 26], "notabl": 10, "notat": 28, "note": [2, 7, 9, 14, 20, 27], "notebook": [7, 10, 11], "noth": [15, 18, 22, 26], "nothng": [], "notic": 18, "notion": 20, "noun": [2, 14], "now": [1, 6, 8, 11, 15, 16, 18, 19, 22, 26, 27], "np": [24, 28], "num": [22, 26], "num1": 13, "num2": 13, "number": [1, 2, 6, 8, 9, 13, 15, 16, 17, 18, 19, 22, 23, 26], "numbers2": 16, "numbers4": 16, "numer": [1, 14, 16, 17, 18, 21, 22], "numeric_str": 28, "numpi": [7, 28, 29], "o": [2, 15, 24], "object": [8, 9, 13, 14, 15, 16, 18, 20, 22, 26, 29], "obtain": 18, "obviou": 28, "obvious": 27, "occur": [22, 26], "odd": [18, 19, 20], "offer": [2, 9, 14], "offic": 7, "offset": 8, "often": [7, 9, 16, 22], "ogi\u00f1i": 15, "ok": 27, "old": 27, "old_valu": 28, "omit": [7, 15, 28], "onc": [16, 22, 24], "ondemand": 7, "one": [6, 7, 8, 15, 16, 17, 19, 20, 21, 22, 26, 27, 28], "ones": [2, 14, 15, 20, 22, 24], "onli": [1, 2, 13, 15, 16, 20, 22, 26, 27, 28], "oo": 27, "ood": 10, "oof": 28, "open": 7, "oper": [7, 11, 13, 18, 19, 22, 23, 26, 27, 28], "operand": [16, 26], "optim": [2, 8, 13], "option": [13, 15, 20, 22, 26], "orang": 1, "order": [8, 16, 18, 20, 22, 27], "org": [8, 9, 11, 16, 17, 22, 26, 28], "organ": [7, 8, 9, 16, 29], "orient": [7, 9, 29], "origin": [16, 22, 27], "other": [2, 7, 8, 9, 14, 15, 21, 22, 24, 26, 27, 28], "otherwis": [2, 13, 18, 19, 22], "oti": 15, "ouput": 13, "our": [7, 10, 11, 15, 22, 27], "out": [1, 2, 16, 17, 20, 21, 22], "output": [8, 11, 13, 16, 20, 21, 22], "outsid": [8, 13, 21, 22], "over": [9, 18, 19, 20, 22, 28], "overflowerror": 22, "overrid": 27, "overwork": [], "overwrit": 16, "own": [1, 7, 8, 9], "p": [2, 14], "packag": [7, 9, 22, 28, 29], "packet": 27, "page": 8, "pair": [1, 16, 20, 22], "palett": 8, "panda": [7, 9, 29], "paradigm": 27, "parallel": 18, "param": [], "paramet": 27, "parametr": 22, "parenthes": [2, 11, 14, 16, 18, 22], "parenthesi": [11, 13, 18, 22], "pars": [24, 28], "part": [1, 15, 22, 26], "particip": 7, "particular": [13, 15, 16, 27], "particularli": [9, 16], "pascal": 9, "pass": [1, 2, 13, 15, 16, 18, 21, 26, 27], "pastel": 8, "path": 24, "pattern": 8, "pd": 9, "pdf": 8, "peanut": 16, "peer": 7, "peopl": [9, 22], "per": 9, "perfectli": [7, 9], "perform": [8, 13, 14, 15, 16, 22, 26, 27, 28], "person": [7, 18], "phonelist": 16, "photo": 24, "photo_mask": 24, "photo_sin": 24, "piec": [11, 20, 22, 23, 26], "pillow": 24, "pip": 24, "pitt": 18, "pixel": 24, "place": [16, 20], "placehold": 26, "plan": 26, "platform": 11, "pleas": 7, "plot": [8, 9, 22], "plt": [9, 24], "plugin": 24, "plugin_arg": 24, "po": 16, "point": [9, 10, 13, 16], "polici": 7, "polymorph": 27, "popul": [1, 19, 22], "popular": 7, "portabl": 10, "posit": [1, 13, 16, 18, 20, 22, 26], "possibl": [8, 22], "post": 7, "post0": 24, "potenti": 7, "pow": 22, "power": [9, 15], "pr": 22, "practic": [7, 24], "pre": 24, "preced": [2, 14, 22], "precis": [20, 22], "predefin": 27, "predominantli": 9, "prefer": 13, "prefix": 15, "prepar": [7, 15], "press": 8, "pretti": 27, "pretzel": 27, "prevent": 26, "previou": [7, 9, 11, 14, 15, 16, 18, 20, 27], "primari": 7, "primarili": [7, 9, 29], "primit": 16, "princess": 20, "principl": 9, "print": [1, 2, 11, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28], "prize": 7, "problem": [7, 9], "procedur": [9, 27], "process": [7, 8, 9], "prod": 24, "produc": [18, 20, 21, 22], "product": [9, 14, 22], "profession": 9, "program": [2, 7, 10, 18, 19, 22, 29], "progress": 7, "prolog": 9, "promot": 9, "prompt": 8, "properli": 21, "properti": 16, "prorivd": 17, "protocol": 22, "prototyp": 9, "provid": [7, 9, 16, 20, 22, 26, 27, 29], "public": 9, "pull": [16, 17], "purpos": [2, 9, 13, 21, 22, 27], "put": [2, 14, 20, 28], "py": 24, "pydata": [8, 9], "pylab": 9, "pypars": 24, "pyplot": 24, "pyspark": 20, "python": [1, 2, 7, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 22, 24, 26, 27, 29], "python3": 24, "python_funct": [], "pytorch": 9, "pywavelet": 24, "q12": 9, "question": [2, 7, 9, 14, 16, 17], "quick": [9, 10], "quicker": 20, "quietli": 7, "quit": [1, 18, 19, 20], "quot": [15, 16, 22], "quotat": 2, "r": [7, 9, 10, 16, 18, 22, 29], "rais": [2, 13, 22, 24], "randint": 28, "random": 28, "rang": [13, 18], "rangi": 16, "rapidli": 9, "rapunzel": 20, "rasero": 15, "rather": [9, 16], "ratio": 22, "ration": 22, "raw": 8, "re": [7, 9, 16, 22], "reach": [18, 20, 22], "read": [2, 7, 9, 11, 20, 22, 24, 26, 29], "read_csv": 9, "readabl": [9, 22], "readthedoc": 8, "real": 22, "realli": [26, 27], "realpython": [], "reason": 26, "reassign": [2, 13, 15, 16, 22], "recal": 20, "recent": [2, 13, 15, 16, 18, 20, 22, 24, 26], "recip": 27, "recogn": 22, "recommend": 8, "redefin": 27, "redifin": 27, "ref": [], "refer": [1, 2, 9, 11, 13, 14, 15, 22, 28], "referenc": [22, 24], "reflect": [], "regardless": 26, "regex": 9, "regress": 20, "regular": 9, "rel": 8, "relat": 27, "relationship": 2, "remain": 9, "remaind": [2, 14, 20], "rememb": [2, 9, 13, 15, 17, 20], "remov": [15, 22, 28], "repeat": [13, 15, 16, 18], "repetit": [2, 15], "repl": 11, "replac": [15, 24, 27], "repli": 11, "repr": 22, "repres": [16, 20, 22], "represent": [8, 13, 22], "reproduc": 10, "request": [22, 24], "requir": [7, 9, 11, 18, 21, 22, 24], "research": [9, 10], "reserv": 2, "reset": 8, "reset_index": 9, "resolut": 22, "resourc": [7, 9], "respect": [9, 14, 16], "respons": 9, "rest": 15, "restrict": [2, 13], "result": [2, 7, 9, 11, 13, 14, 15, 16, 18, 20, 22, 24, 26], "retain": 20, "retriev": 20, "return": [2, 8, 13, 14, 15, 16, 20, 21, 24, 26, 28], "reus": 27, "reusabl": [9, 22, 27], "reusibl": 27, "revers": [15, 28], "reward": 7, "ri": 24, "rich": [8, 10], "ride": 7, "right": [2, 7, 16, 18, 21, 22], "risk": 7, "rivanna": [7, 10], "rn": 16, "rng": 16, "rnn": 20, "road": 27, "robin": 16, "rom": 8, "room": 20, "rough": 8, "round": 22, "row": [24, 28], "rstudio": 10, "rubi": 9, "rule": [1, 2, 8, 9, 13, 27], "run": [6, 11, 19, 23, 26], "runtimeerror": 24, "sai": [11, 15, 22, 27], "said": 9, "salut": 27, "sam": 16, "samantha": 16, "same": [2, 6, 8, 13, 14, 15, 16, 20, 22, 26, 27], "sarah": 16, "satisfi": 24, "save": [8, 13, 15, 22, 27, 28], "saw": [14, 15, 16], "scala": 9, "scalabl": 27, "scalar": [16, 17], "scalat": 27, "schema": 27, "scheme": 16, "scienc": [7, 10, 29], "scientif": 10, "scientist": [7, 29], "scikit": [9, 24], "scipi": [24, 28], "screen": 11, "script": [9, 11], "seaborn": [8, 9], "search": 24, "searchin": 18, "second": [13, 15, 16, 22, 26], "secondv": 1, "secong": 15, "section": [7, 8, 26], "see": [1, 7, 9, 13, 14, 15, 16, 17, 18, 20, 22, 26], "seem": 26, "seen": [11, 22], "select": [8, 15, 27], "self": [8, 22, 24, 27], "semest": [7, 11, 20], "sens": [2, 14], "sensibl": [21, 22], "sensit": [1, 2, 13], "sep": 22, "separ": [8, 9, 13, 16, 27, 28], "seq": 18, "sequenc": [8, 15, 16, 20], "sequenti": [2, 14, 29], "seri": [19, 20], "serv": 7, "server": 10, "servic": 7, "session": [7, 24], "set": [2, 7, 8, 9, 10, 14, 18, 19, 22, 23, 24, 27], "set1": 16, "set2": 16, "set_them": 8, "sever": [7, 13, 15, 16, 18, 22], "sex": 27, "shape": [9, 24, 28], "share": [8, 10, 20], "sheet": 8, "shell": 11, "shift": 8, "short": [1, 2, 14, 22], "shortchang": 7, "shortcut": [6, 8], "shorter": 20, "shot": 7, "should": [1, 2, 7, 8, 13, 18, 19, 20, 22, 26, 27, 28], "show": [8, 13, 21, 22, 28], "show_arg_expans": 22, "show_entri": 22, "show_result": 22, "show_scop": 22, "shown": [6, 8, 22], "si": 15, "side": [], "sign": 22, "signatur": 22, "signific": 22, "similar": [9, 15, 16], "similarli": [8, 15, 16, 26, 28], "simpl": [1, 2, 8, 13, 22], "simpli": [11, 22], "simplifi": [8, 28], "sin": [24, 28], "sinc": [7, 16, 22, 26], "singl": [2, 13, 14, 15, 16, 18, 22, 28], "sir": 16, "sit": 7, "site": [2, 7, 14, 24], "situat": [20, 26], "six": 24, "size": [9, 22], "skill": [7, 22, 29], "skimag": 24, "skip": [18, 26], "slice": 17, "small": [7, 21], "smoker": 8, "sn": [8, 9], "snake": 13, "snoopi": 16, "so": [1, 2, 7, 8, 9, 11, 13, 14, 15, 16, 18, 20, 22, 26, 27, 28], "softwar": [7, 9, 27], "solut": 9, "solv": 9, "some": [2, 6, 7, 8, 9, 11, 13, 14, 15, 19, 22, 27, 28, 29], "somebodi": 22, "someth": [18, 19, 26], "sometim": [1, 7, 18, 26], "soon": [11, 14, 15, 26], "sort": [1, 16, 24], "sourc": [7, 9, 10, 11, 24, 27], "space": [2, 13, 15, 18, 22], "spain": 18, "special": [14, 19, 27], "specif": [1, 2, 9, 13, 15, 20, 22, 26, 27, 28], "specifi": [2, 13, 15, 16, 20, 22, 26, 27], "speed": 9, "spell": 9, "spend": 7, "split": [15, 16], "spoken": 7, "spring": 20, "sql": [9, 16], "squar": [21, 22], "square_arg": 21, "st": 20, "stabl": [9, 28], "standard": 28, "start": [1, 2, 7, 8, 13, 14, 15, 16, 18, 20, 22, 28, 29], "startswith": [2, 15], "state": [8, 9, 27], "statement": [18, 19, 22, 23, 24, 26], "static": 22, "statist": [9, 24], "statsmodel": 9, "std": [24, 28], "stdout": 22, "step": [10, 14, 15, 16, 21], "still": [13, 27], "stop": [15, 16, 20, 26], "stop_word": 20, "stopiter": 20, "store": [2, 9, 13, 15, 16, 18, 19, 20, 27], "str": [2, 13, 15, 18, 21, 26], "stream": 22, "string": [1, 13, 16, 18, 19, 21, 22, 26], "string1": [2, 15], "string2": [2, 15], "string_": 28, "string_var": [2, 13, 15], "strip": 15, "strn": 20, "structru": 13, "structur": [1, 2, 7, 9, 13, 14, 15, 20, 27, 29], "student": [7, 29], "studi": [13, 15, 18, 20, 22], "style": [8, 9], "subclass": 22, "subject": [2, 14, 16], "subject_id": [1, 2], "submit": 10, "subscript": 16, "subset": 2, "substr": 15, "substract": 11, "subtract": [2, 14, 21], "successfulli": 7, "sucess": 26, "suggest": [15, 22], "suitabl": [9, 22], "sum": [9, 13, 14, 24], "suma": 22, "summar": 20, "summari": [2, 14], "super": 18, "superior": 9, "support": [2, 7, 10, 14, 15, 16, 20, 22, 26], "sure": [8, 19, 23], "surpris": [], "survei": 9, "survey_data": 9, "swap": [], "switch": 24, "sy": 22, "symbol": [13, 14, 16], "syntax": [1, 2, 9, 14, 20, 26], "syntaxerror": [1, 13, 18, 22, 26], "system": [9, 22, 24, 27], "t": [7, 8, 15, 16, 18, 20, 22, 24], "tab": [8, 18], "tabl": 16, "tailor": 7, "take": [1, 7, 11, 13, 16, 18, 20, 21, 22, 26, 27, 28], "tall": [15, 27], "tan": 28, "task": [7, 9, 22, 27], "team": 22, "technic": [7, 22], "techniqu": [7, 9, 29], "technologi": 27, "tell": 18, "templat": 27, "tensorflow": 9, "term": [9, 13, 22], "termin": 29, "test": [2, 14, 19, 21, 22, 23], "text": [6, 8, 10, 15, 21, 22], "than": [2, 8, 9, 14, 16, 18, 19, 20, 22], "thei": [2, 9, 10, 13, 14, 16, 18, 20, 22], "them": [1, 7, 8, 10, 11, 13, 14, 15, 16, 18, 20, 22, 26, 27], "themselv": [], "theori": 22, "therefor": [2, 14, 16, 18, 22, 26], "thi": [1, 2, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 26, 27, 29], "thing": [2, 8, 14, 15, 18, 20, 22, 26, 27], "think": [7, 9, 27], "third": 26, "this_set": 18, "this_tupl": 18, "this_var": 13, "thisvar": 13, "thorugh": 8, "those": [1, 9, 15], "though": [13, 20, 22, 26], "thought": [1, 27], "thr": 22, "three": [1, 2, 8, 14, 22, 24, 28], "thresh": 22, "threshold": 22, "through": [2, 7, 8, 9, 11, 13, 18, 19, 20, 22, 27], "throughout": [7, 11, 13, 16], "throuhg": 18, "throw": 22, "thu": 8, "tick": 8, "tick_param": 9, "tidyvers": [7, 9], "tifffil": 24, "time": [7, 8, 9, 16, 20, 22, 26, 28], "timeit": [], "tip": 8, "titl": 9, "to_byt": 22, "togeth": [13, 27], "tok": 20, "token": 20, "tom": 16, "too": [15, 22, 26, 27], "tool": [7, 10, 29], "toolbar": 8, "top": 28, "topic": [1, 2, 28, 29], "total": 1, "total_bil": 8, "total_volum": [1, 2], "traceback": [2, 13, 15, 16, 18, 20, 22, 24, 26], "track": [18, 20], "trail": 15, "transform": 20, "translat": 9, "transpar": 7, "transpos": 24, "treat": 22, "tree": 28, "tri": 26, "trim": 8, "tripl": 22, "troubl": 22, "troubleshoot": 7, "true": [2, 8, 9, 13, 14, 15, 16, 18, 20, 21, 22, 24, 26, 27], "truncat": 22, "try": [1, 2, 6, 8, 13, 18, 19, 21, 22], "tup_metr": 20, "tupl": [1, 13, 15, 17, 18, 19, 22, 26], "tuple0": 16, "tuple1": 16, "turn": 28, "tutori": 7, "two": [1, 2, 7, 8, 9, 13, 14, 15, 16, 21, 22, 26, 28, 29], "txt": 21, "type": [1, 6, 7, 8, 9, 11, 14, 15, 16, 20, 22, 24, 26, 27], "type1": 13, "type2": 13, "type3": 13, "typeerror": [15, 16, 22, 26], "typic": [9, 13], "u": [20, 22, 27], "uhoh": 22, "unboundlocalerror": 22, "uncomfort": 7, "underscor": [1, 2, 13], "understand": [7, 9, 15, 18, 20, 22, 29], "undoubtedli": 7, "unend": 18, "unexpect": [8, 22], "unformat": 8, "unhandl": 26, "union": 16, "uniqu": [2, 13, 16], "unit": 20, "units1": 20, "units2": 20, "unknown": 7, "unless": [9, 26, 27], "unlik": [9, 27], "unord": [16, 18], "unpack": 18, "unprepar": 7, "unspecifi": 22, "unsupport": [16, 26], "unsur": 7, "until": 18, "up": [7, 8, 15, 26], "updat": [2, 14, 16, 22, 28], "upload": 8, "upon": 28, "upper": [15, 20], "uppercas": [13, 20], "uri": 24, "us": [1, 2, 6, 7, 8, 9, 10, 11, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29], "usa": 18, "usabl": 22, "usag": 8, "user": [8, 10, 24], "usual": [8, 9, 16, 20, 22, 24, 26], "util": [9, 18], "uva": 7, "v": [8, 18, 20], "v2": 24, "vagu": 26, "val": [18, 19, 20, 21, 22, 23], "valencia": 18, "valid": 22, "vals_greater_than_or_equal_to_threshold": 22, "valu": [1, 2, 13, 14, 18, 19, 20, 21, 24, 27], "valuabl": 10, "value_count": 9, "value_express": 20, "valueerror": [18, 24, 26], "var": [18, 20, 21, 24], "var_float": [2, 13], "var_int": [2, 13], "var_str": [2, 13], "variabl": [14, 15, 16, 18, 19, 20, 21, 23, 26, 28, 29], "variat": [], "varieti": 9, "variou": [7, 9, 20], "verb": [2, 14], "veri": [2, 9, 14, 20], "verifi": [21, 22], "verify_string_length": 21, "versatil": 9, "version": [11, 22, 28], "via": 10, "video": [8, 9], "view": [2, 13], "virginia": [2, 10, 13], "visibl": [8, 22], "visit": 8, "visual": [7, 9, 10, 20, 28], "vital": 7, "vowel": 20, "w3school": [2, 14], "wa": [9, 16, 20, 22, 24, 26, 27], "wahoo": 2, "wai": [1, 2, 7, 8, 9, 13, 14, 15, 16, 18, 20, 22, 26, 27, 28], "wait": 26, "want": [8, 11, 13, 15, 16, 18, 22, 26, 27], "warn": 15, "wd": 20, "we": [1, 2, 7, 9, 10, 11, 13, 14, 15, 16, 18, 19, 20, 22, 24, 26, 27], "web": [8, 9, 10], "week": [1, 2, 7, 16], "weird": [], "welcom": [7, 8], "well": [7, 9, 20, 22, 29], "went": 26, "were": [2, 19, 20, 22], "what": [1, 2, 7, 11, 14, 16, 18, 19, 20, 22, 23, 24, 26, 27], "when": [2, 8, 11, 13, 14, 15, 16, 18, 19, 20, 24, 26, 27, 28], "where": [2, 7, 9, 13, 16, 20, 22, 24, 26, 27], "wherea": [15, 20, 22], "whether": [8, 15, 18, 22, 26], "which": [1, 7, 8, 9, 10, 11, 13, 15, 16, 18, 20, 22, 26, 27, 28], "while": [2, 7, 9, 13, 19, 20, 22, 23], "white": [8, 13], "whitespac": 15, "who": 7, "whole": [8, 15], "whose": [22, 28], "why": [9, 18, 20, 22, 26], "wide": [9, 10], "widget": 8, "wiki": 28, "wikipedia": 28, "wil": 20, "wild": 27, "wish": 22, "within": [1, 7, 10, 13, 15, 19, 20, 22, 26, 27, 28], "without": [8, 11, 13, 16, 20, 27], "won": 22, "wonder": 11, "woodstock": 16, "word": [13, 14, 18, 20, 22], "work": [7, 9, 10, 15, 16, 18, 19, 20, 21, 22, 26, 29], "workflow": 8, "workhors": 28, "world": [2, 11], "worri": 22, "would": [1, 8, 9, 13, 15, 16, 22, 26, 27], "wp": 8, "wrap": 24, "write": [7, 8, 9, 10, 11, 13, 17, 19, 20, 21, 22, 23, 24, 26, 29], "writen": 11, "written": [9, 22], "wrong": [7, 26], "www": [8, 9, 16, 17, 28], "x": [1, 2, 8, 9, 13, 14, 16, 18, 21, 22, 24, 26, 28], "x1": 22, "xlabel": 9, "xx": [18, 19], "y": [1, 2, 8, 9, 13, 14, 15, 16, 22], "y1": 22, "ye": 16, "year": [26, 27], "yield": [2, 11, 13, 16, 20], "ylabel": 9, "ym": 15, "york": 9, "you": [1, 2, 8, 9, 10, 11, 13, 14, 15, 16, 18, 20, 21, 22, 26, 27, 28], "your": [1, 2, 7, 8, 9, 13, 14, 15, 16, 17, 18, 20, 22, 24, 26, 27], "yourself": [7, 26], "z": [1, 2, 8, 13, 14, 16, 18, 19, 22, 24], "zero": [15, 16, 26, 28], "zero_arrai": 28, "zero_int_arrai": 28, "zerodivisionerror": 26, "zip": 22, "\u00f1g": 15, "\u00f1igo": 15}, "titles": ["Getting started", "Metadata", "Metadata", "<no title>", "<no title>", "<no title>", "Practice", "Introduction", "Jupyter Notebooks", "Brief introduction to programming languages", "Tech Stack", "Your first Python program!", "Python (Beginner)", "Variables and data types", "Operators and Expressions", "Strings", "Data Structures", "Data Structures Exercises", "Control Structures", "<no title>", "Iterables and Iterators", "<no title>", "Functions", "<no title>", "Installing & Importing Packages", "Python (Intermediate)", "Errors and Exceptions", "Object-Oriented Programming (OOP)", "PREREQUISITES", "Welcome to DS-1002"], "titleterms": {"1": 27, "1002": 29, "2": 27, "3": 27, "Will": 7, "ad": [16, 26], "alias": 24, "ar": [7, 24], "arg": [], "argument": [1, 22], "arithmet": 14, "arrai": [24, 28], "basic": [8, 24, 28], "beginn": 12, "best": 26, "block": 26, "break": 18, "brief": 9, "built": [18, 22], "calcul": 28, "call": 22, "can": 18, "canva": 10, "cell": 8, "check": 15, "class": 27, "code": 8, "command": 8, "comparison": [2, 14], "compil": 9, "compon": 8, "comprehens": 20, "concept": 28, "condit": 18, "construct": 16, "continu": 18, "control": 18, "convert": [2, 13], "cours": 7, "creat": 22, "current": 18, "d": 29, "data": [2, 9, 13, 16, 17, 24, 28], "default": 22, "design": [], "dictionari": [16, 20], "docstr": 22, "document": 8, "drop": 28, "edit": 8, "editor": 8, "elif": 18, "els": [18, 26], "entri": 16, "enumer": 18, "error": 26, "exampl": 20, "except": 26, "excersis": 26, "exercis": [13, 14, 15, 16, 17, 18, 20, 22], "exit": 18, "express": [2, 14], "final": 26, "first": 11, "format": 15, "function": [18, 22, 24], "gener": 20, "get": 0, "global": 22, "good": 22, "guidelin": 22, "handl": 26, "how": 7, "i": [13, 15], "id": 2, "ident": 14, "ii": [], "iii": [], "imag": 24, "immut": 15, "import": 24, "indent": 18, "index": [1, 15, 16], "inherit": 27, "initi": 27, "insert": 28, "instal": 24, "intermedi": 25, "interpret": 9, "introduciton": [], "introduct": [7, 8, 9, 18, 20, 22, 26], "iter": [18, 20], "iv": [], "jupyt": 8, "jupyterlab": 10, "kernel": 8, "keyboard": 8, "keyword": 13, "know": 7, "languag": 9, "learn": 7, "like": [], "liner": 18, "list": [16, 20], "local": 22, "logic": [2, 14], "loop": [18, 20], "manipul": 28, "membership": 15, "menu": 8, "metadata": [1, 2], "method": [15, 16], "modal": 8, "mode": 8, "more": 8, "mous": 8, "multipl": 18, "mutabl": 16, "name": [2, 13], "navig": 8, "nest": 20, "new": 16, "note": 16, "notebook": 8, "numer": [2, 24], "numpi": 24, "object": [2, 7, 27, 28], "ondemand": 10, "one": 18, "oop": 27, "open": 10, "oper": [2, 14, 15, 16], "orient": 27, "pack": 22, "packag": 24, "paradigm": 9, "paramet": 22, "pass": 22, "practic": [6, 13, 14, 15, 16, 18, 20, 22, 26], "prerequisit": 28, "process": 18, "program": [9, 11, 27], "python": [11, 12, 25], "rais": 26, "rang": [16, 20], "reserv": 13, "resourc": 8, "restart": 8, "retriev": 16, "return": 22, "run": 8, "runtim": 26, "scienc": 9, "scope": 22, "set": [16, 20], "slice": [15, 16, 28], "some": [16, 18, 26], "sourc": 28, "stack": 10, "start": 0, "stop": 18, "string": [2, 15, 20], "structur": [16, 17, 18], "subset": 15, "succe": 7, "summari": 16, "tech": 10, "theori": 20, "thi": 7, "tip": 22, "try": 26, "tupl": [16, 20], "type": [2, 13, 28], "unari": [2, 14], "unpack": 22, "us": [16, 18], "v": 9, "valu": [16, 22, 28], "variabl": [1, 2, 13, 22], "versu": 22, "vi": [], "vii": [], "viii": [], "welcom": 29, "what": [13, 15], "when": 22, "while": 18, "write": 18, "you": 7, "your": 11, "zip": 18}}) \ No newline at end of file +Search.setIndex({"alltitles": {"": [[8, "Practice1"], [11, "Practice2"], [13, "variables1"], [13, "variables2"], [13, "variables3"], [14, "operators1"], [14, "operators2"], [15, "strings1"], [15, "strings2"], [16, "structures1"], [16, "structures2"], [16, "structures3"], [16, "structures4"], [16, "structures5"], [16, "structures6"], [18, "conditional1"], [18, "conditional2"], [18, "conditional3"], [20, "iterables1"], [20, "iterables2"], [22, "functions1"], [22, "functions2"], [27, "exceptions1"], [27, "exceptions2"], [28, "classes1"], [28, "classes2"]], "Adding a new entry": [[16, "adding-a-new-entry"]], "Adding finally and else blocks": [[27, "adding-finally-and-else-blocks"]], "Arguments": [[1, "arguments"]], "Arguments and parameters": [[22, "arguments-and-parameters"]], "Arithmetic Operators": [[14, "arithmetic-operators"]], "Attributes and methods": [[28, "attributes-and-methods"]], "Basic Array Manipulations + Calculations": [[29, "basic-array-manipulations-calculations"]], "Basic NumPy Array Functionality": [[25, "basic-numpy-array-functionality"]], "Brief introduction to programming languages": [[9, "brief-introduction-to-programming-languages"]], "Built-in functions": [[22, "built-in-functions"]], "CONCEPTS": [[29, "concepts"]], "Canvas": [[10, "canvas"]], "Cell menu": [[8, "cell-menu"]], "Classes and Objects": [[28, "classes-and-objects"]], "Command mode": [[8, "command-mode"]], "Comparison Operators": [[2, "comparison-operators"], [14, "comparison-operators"]], "Compiled vs Interpreted languages": [[9, "compiled-vs-interpreted-languages"]], "Components": [[8, "components"]], "Comprehension": [[20, "comprehension"]], "Conditions": [[18, "conditions"]], "Constructing": [[16, "constructing"]], "Constructing a dictionary": [[16, "constructing-a-dictionary"]], "Constructing a list": [[16, "constructing-a-list"]], "Control Structures": [[18, "control-structures"]], "Converting Data Types": [[2, "converting-data-types"], [13, "converting-data-types"]], "Creating and calling a function": [[22, "creating-and-calling-a-function"]], "Data Structures": [[16, "data-structures"]], "Data Structures Exercises": [[17, "data-structures-exercises"]], "Data Types": [[2, "data-types"], [29, "data-types"]], "Default Arguments": [[22, "default-arguments"]], "Defining a class": [[28, "defining-a-class"]], "Dictionaries": [[16, "dictionaries"], [20, "dictionaries"]], "Docstring": [[22, "docstring"]], "Edit mode": [[8, "edit-mode"]], "Errors and Exceptions": [[27, "errors-and-exceptions"]], "Examples": [[20, "examples"], [20, "id2"]], "Expressions": [[2, "expressions"], [14, "expressions"]], "Functions": [[22, "functions"]], "General Theory": [[20, "general-theory"]], "Getting started": [[0, "getting-started"]], "Guidelines when passing arguments:": [[22, "guidelines-when-passing-arguments"]], "Handling runtime errors with try and except": [[27, "handling-runtime-errors-with-try-and-except"]], "How You Will Know You Are Learning": [[7, "how-you-will-know-you-are-learning"]], "How will you succeed in this course?": [[7, "how-will-you-succeed-in-this-course"]], "Identity Operators": [[14, "identity-operators"]], "Images are Numerical Data": [[25, "images-are-numerical-data"]], "Immutability": [[15, "immutability"]], "Import Aliases": [[25, "import-aliases"]], "Importing": [[25, "importing"]], "Indentation": [[18, "indentation"]], "Indexing": [[1, "indexing"], [15, "indexing"], [16, "indexing"]], "Inheritance": [[28, "inheritance"]], "Initialize classes": [[28, "initialize-classes"]], "Inserting + Dropping Array Values": [[29, "inserting-dropping-array-values"]], "Installing": [[25, "installing"]], "Installing & Importing Packages": [[25, "installing-importing-packages"]], "Instructions": [[23, "instructions"], [24, "instructions"]], "Introduction": [[7, "introduction"], [8, "introduction"], [18, "introduction"], [20, "introduction"], [20, "id1"], [22, "introduction"], [27, "introduction"], [28, "introduction"]], "Introduction to object-oriented programming (OOP)": [[28, "introduction-to-object-oriented-programming-oop"]], "Iterables": [[20, "iterables"]], "Iterables and Iterators": [[20, "iterables-and-iterators"]], "Iterators": [[20, "iterators"]], "Jupyter Notebooks": [[8, "jupyter-notebooks"]], "JupyterLab": [[10, "jupyterlab"]], "Keyboard Navigation": [[8, "keyboard-navigation"]], "Learning Objectives": [[7, "learning-objectives"]], "Lists": [[16, "lists"], [20, "lists"]], "Local versus Global Variables": [[22, "local-versus-global-variables"]], "Logical Operators": [[2, "logical-operators"], [14, "logical-operators"]], "Loops": [[18, "loops"]], "Metadata": [[1, "metadata"], [2, "metadata"]], "Modal editor": [[8, "modal-editor"]], "More Resources": [[8, "more-resources"]], "Mouse navigation": [[8, "mouse-navigation"]], "Mutability": [[16, "mutability"]], "Nested Loops": [[20, "nested-loops"]], "Notebook Basics": [[8, "notebook-basics"]], "Notebook documents": [[8, "notebook-documents"]], "Notes": [[16, "notes"]], "Numeric Operators": [[2, "numeric-operators"]], "OBJECTIVES": [[29, "objectives"]], "Object ID": [[2, "object-id"]], "Open OnDemand": [[10, "open-ondemand"]], "Operations on lists": [[16, "operations-on-lists"]], "Operator in: check membership": [[15, "operator-in-check-membership"]], "Operators": [[2, "operators"], [14, "operators"]], "Operators and Expressions": [[14, "operators-and-expressions"]], "PREREQUISITES": [[29, "prerequisites"]], "Packing": [[22, "packing"]], "Packing and Unpacking arguments": [[22, "packing-and-unpacking-arguments"]], "Practice": [[6, "practice"]], "Practice excersises": [[27, "practice-excersises"], [28, "practice-excersises"]], "Practice exercise": [[16, "practice-exercise"], [16, "id1"], [16, "id2"], [16, "id3"], [16, "id4"], [16, "id6"]], "Practice exercises": [[13, "practice-exercises"], [14, "practice-exercises"], [15, "practice-exercises"], [18, "practice-exercises"], [20, "practice-exercises"], [22, "practice-exercises"]], "Programming and Data Science": [[9, "programming-and-data-science"]], "Programming paradigms": [[9, "programming-paradigms"]], "Python (Beginner)": [[12, "python-beginner"]], "Python (Intermediate)": [[26, "python-intermediate"]], "Raising exceptions": [[27, "raising-exceptions"]], "Ranges": [[16, "ranges"], [20, "ranges"]], "Reserved names (keywords)": [[13, "reserved-names-keywords"]], "Restarting the kernels": [[8, "restarting-the-kernels"]], "Retrieve a value": [[16, "retrieve-a-value"]], "Returning Values": [[22, "returning-values"]], "Running Code (edit mode)": [[8, "running-code-edit-mode"]], "SOURCES": [[29, "sources"]], "Sets": [[16, "sets"], [20, "sets"]], "Slicing": [[15, "slicing"], [16, "slicing"], [29, "slicing"]], "Some best practices": [[27, "some-best-practices"]], "Some methods": [[16, "some-methods"], [16, "id5"]], "Some useful built-in functions with loops": [[18, "some-useful-built-in-functions-with-loops"]], "Some useful methods": [[16, "some-useful-methods"]], "String Formatting": [[15, "string-formatting"]], "String Methods": [[15, "string-methods"]], "String Operators": [[2, "string-operators"], [15, "string-operators"]], "Strings": [[15, "strings"], [20, "strings"]], "Subsetting a string": [[15, "subsetting-a-string"]], "Summary": [[16, "summary"]], "Tech Stack": [[10, "tech-stack"]], "Tips for creating good functions": [[22, "tips-for-creating-good-functions"]], "Tuples": [[16, "tuples"], [20, "tuples"]], "Unary Operators": [[2, "unary-operators"], [14, "unary-operators"]], "Unpacking": [[22, "unpacking"]], "Using multiple conditions": [[18, "using-multiple-conditions"]], "Variable Names": [[2, "variable-names"]], "Variable Scope": [[22, "variable-scope"]], "Variable naming": [[13, "variable-naming"]], "Variable types": [[13, "variable-types"]], "Variables": [[1, "variables"], [2, "variables"]], "Variables and data types": [[13, "variables-and-data-types"]], "Welcome to DS-1002": [[30, "welcome-to-ds-1002"]], "What is a string?": [[15, "what-is-a-string"]], "What is a variable?": [[13, "what-is-a-variable"]], "What is self?": [[28, "what-is-self"]], "Your first Python program!": [[11, "your-first-python-program"]], "break - exit the loop": [[18, "break-exit-the-loop"]], "continue - stop the current iteration": [[18, "continue-stop-the-current-iteration"]], "enumerate()": [[18, "enumerate"]], "for loop": [[18, "for-loop"]], "if and else can be used for conditional processing.": [[18, "if-and-else-can-be-used-for-conditional-processing"]], "using if, elif": [[18, "using-if-elif"]], "using if, elif, else": [[18, "using-if-elif-else"]], "while-loop": [[18, "while-loop"]], "writing if and else as one-liners": [[18, "writing-if-and-else-as-one-liners"]], "zip()": [[18, "zip"]]}, "docnames": ["chapters/01-getting_started", "chapters/02-python-basics", "chapters/04-python-basics", "chapters/module-1/012-intro_python", "chapters/module-1/012-intro_python (copia)", "chapters/module-1/013-intro_R", "chapters/module-1/Practice", "chapters/module-1/about_course", "chapters/module-1/jupyter_notebooks", "chapters/module-1/programming", "chapters/module-1/tech_stack", "chapters/module-1/your_first_program", "chapters/module-2/02-cover", "chapters/module-2/021-variables", "chapters/module-2/022-operators", "chapters/module-2/023-strings", "chapters/module-2/024-structures", "chapters/module-2/0241-structures_exercises", "chapters/module-2/025-conditional", "chapters/module-2/0251-conditional_exercises", "chapters/module-2/026-iterables_and_iterators", "chapters/module-2/0261-functions_exercises", "chapters/module-2/027-functions", "chapters/module-2/In-class_100324", "chapters/module-2/In-class_100324_sols", "chapters/module-3/029-packages", "chapters/module-3/03-cover", "chapters/module-3/031-errors_and_exceptions", "chapters/module-3/032-classes", "chapters/module-4/041-numpy", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["chapters/01-getting_started.md", "chapters/02-python-basics.ipynb", "chapters/04-python-basics.ipynb", "chapters/module-1/012-intro_python.md", "chapters/module-1/012-intro_python (copia).md", "chapters/module-1/013-intro_R.md", "chapters/module-1/Practice.ipynb", "chapters/module-1/about_course.md", "chapters/module-1/jupyter_notebooks.ipynb", "chapters/module-1/programming.ipynb", "chapters/module-1/tech_stack.md", "chapters/module-1/your_first_program.ipynb", "chapters/module-2/02-cover.md", "chapters/module-2/021-variables.ipynb", "chapters/module-2/022-operators.ipynb", "chapters/module-2/023-strings.ipynb", "chapters/module-2/024-structures.ipynb", "chapters/module-2/0241-structures_exercises.ipynb", "chapters/module-2/025-conditional.ipynb", "chapters/module-2/0251-conditional_exercises.ipynb", "chapters/module-2/026-iterables_and_iterators.ipynb", "chapters/module-2/0261-functions_exercises.ipynb", "chapters/module-2/027-functions.ipynb", "chapters/module-2/In-class_100324.ipynb", "chapters/module-2/In-class_100324_sols.ipynb", "chapters/module-3/029-packages.ipynb", "chapters/module-3/03-cover.md", "chapters/module-3/031-errors_and_exceptions.ipynb", "chapters/module-3/032-classes.ipynb", "chapters/module-4/041-numpy.ipynb", "index.md"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [2, 8, 9, 10, 11, 13, 14, 16, 18, 20, 22, 24, 25, 27, 28, 29], "0": [1, 2, 9, 11, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 27, 29], "0b100101": 22, "0b1101": 22, "0x1": 13, "0x87f408": 22, "0x87f448": 22, "0x87f508": 13, "0x87f648": 13, "1": [1, 2, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30], "10": [2, 8, 11, 13, 14, 16, 18, 19, 20, 22, 23, 24, 25, 27, 28, 29], "100": [2, 9, 11, 13, 14, 19, 25], "1000": [23, 24], "1001": 24, "1002": [1, 2, 11, 22, 25], "11": [1, 15, 16, 22, 25, 28, 29], "111": 25, "112": 25, "113": 25, "115": 25, "115mmhg": 20, "117": 25, "118": 25, "119": 24, "12": [13, 20, 28, 29], "120": 20, "122": [], "123": 16, "1234": 22, "1244706300354": 14, "125": [2, 13], "13": [1, 19, 22, 23, 24, 25], "130": [2, 13], "139919121178064": 13, "139919121182192": 13, "14": [2, 13, 25], "14112001": 29, "1416": 13, "147": 24, "15": [9, 14, 20, 22, 25, 29], "16": [18, 22, 25], "175": 24, "176": 15, "18": 1, "189": 24, "19": 2, "1a": [], "1b": [], "2": [1, 2, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30], "20": [2, 9, 13, 14, 20, 22, 25, 29], "200": 25, "2018": 8, "2019": 25, "202": 25, "2021": 25, "2022": 9, "203": 25, "205": 25, "21": [22, 25], "22": [2, 14, 25], "223": 16, "23": 16, "24": 25, "244": 25, "245": 24, "246": 25, "247": 25, "249": 25, "25": [2, 9, 11, 13, 14, 16, 27, 29], "250": 25, "255": 25, "256": [2, 13, 22], "259": 24, "26": [15, 16, 22, 25], "27": [16, 28], "273": 24, "278": [2, 13], "2794155": 29, "28": 16, "287": 24, "29": 16, "2d": 29, "3": [1, 2, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30], "30": [16, 21, 22, 25, 29], "300": [14, 25], "31": 25, "32": 25, "329": 24, "33": [18, 25], "332": 16, "34": [25, 27], "35": [2, 13, 14, 25, 29], "356": 25, "357": [24, 25], "359": 25, "36": 25, "360": 25, "362": 25, "37": [15, 22], "371": 24, "38": [], "385": 24, "399": 24, "3a": 19, "3b": 19, "3d": 29, "3foo": 13, "4": [2, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 29, 30], "40": [16, 20, 25, 29], "400": 25, "404": 25, "405": 25, "406": 25, "407": 25, "408": 25, "409": 25, "410": 25, "41211849": 29, "42": [2, 29], "427": 24, "43": 2, "44": [], "45": [22, 29], "455": 24, "456": 16, "469": 24, "483": 24, "49": 24, "497": 24, "5": [1, 2, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 28, 29, 30], "50": [16, 25, 29], "500": [25, 29], "51": 25, "52": 25, "525": 24, "53": [16, 22, 25], "539": 24, "54402111": 29, "55": [16, 25], "553": 24, "56": 25, "567": 24, "581": 24, "59": 16, "595": 24, "5dl": 20, "5mg": 20, "6": [2, 8, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 29, 30], "60": 22, "609": 24, "623": 24, "637": 24, "64": [21, 22, 27], "651": 24, "6569866": 29, "665": 24, "67": 13, "679": 24, "693": 24, "7": [16, 18, 20, 22, 23, 24, 25, 27, 29], "707": 24, "735": 24, "74": [], "749": 24, "75": 14, "7568025": 29, "76": [], "763": 24, "77": 24, "777": [16, 24], "791": 24, "8": [1, 2, 13, 14, 18, 19, 20, 21, 22, 24, 25, 27, 29], "80": 16, "800": 28, "805": 24, "81": 24, "819": 24, "82": [], "833": 24, "84147098": 29, "847": 24, "861": 24, "8722813232690143": 29, "875": 24, "889": 24, "8909800": 13, "897": 16, "9": [1, 2, 13, 14, 16, 19, 21, 25, 27, 29], "90": [], "903": 24, "90929743": 29, "91": 22, "912": 22, "917": 24, "931": 24, "945": 24, "95892427": 29, "959": 24, "973": 24, "987": 24, "98935825": 29, "99": 16, "A": [1, 2, 8, 9, 11, 13, 14, 16, 22, 23, 24, 28, 29], "And": [11, 15, 22, 28], "As": [7, 8, 9, 11, 15, 20, 27, 28, 30], "At": 22, "Be": [18, 20, 22], "But": [7, 13, 16, 18, 22, 27, 28], "By": [7, 13], "FOR": 18, "For": [1, 2, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 22, 28], "IF": 18, "IN": 28, "If": [2, 7, 8, 9, 14, 15, 16, 18, 19, 22, 24, 27, 28, 29], "In": [1, 2, 8, 9, 10, 11, 13, 14, 15, 16, 18, 20, 22, 23, 24, 25, 27, 28, 29], "It": [1, 9, 15, 16, 18, 22, 25, 27, 28], "NO": 28, "NOT": 16, "No": [2, 16, 25], "Not": [], "On": 9, "One": [15, 22, 29], "Or": [1, 13, 22, 27], "THE": 7, "That": [16, 28], "The": [2, 7, 8, 9, 10, 11, 13, 14, 15, 16, 18, 20, 22, 23, 24, 27, 28, 29, 30], "Their": [10, 20], "Then": [6, 8, 11, 14, 22, 28], "There": [2, 8, 13, 14, 20, 27, 29], "These": [7, 8, 9, 13, 16, 22, 27, 28], "To": [9, 15, 16, 18, 20, 22, 25, 28], "With": [8, 22, 28], "_": [1, 2, 13, 22], "__abs__": 22, "__add__": 22, "__and__": 22, "__bool__": 22, "__ceil__": 22, "__divmod__": 22, "__doc__": 22, "__eq__": 22, "__float__": 22, "__floor__": 22, "__floordiv__": 22, "__format__": 22, "__ge__": 22, "__getattribute__": 22, "__getnewargs__": 22, "__gt__": 22, "__hash__": 22, "__index__": 22, "__init__": [25, 28], "__int__": 22, "__invert__": 22, "__le__": 22, "__lshift__": 22, "__lt__": 22, "__main__": [22, 28], "__mod__": 22, "__mul__": 22, "__ne__": 22, "__neg__": 22, "__new__": 22, "__or__": 22, "__pos__": 22, "__pow__": 22, "__radd__": 22, "__rand__": 22, "__rdivmod__": 22, "__repr__": 22, "__rfloordiv__": 22, "__rlshift__": 22, "__rmod__": 22, "__rmul__": 22, "__ror__": 22, "__round__": 22, "__rpow__": 22, "__rrshift__": 22, "__rshift__": 22, "__rsub__": 22, "__rtruediv__": 22, "__rxor__": 22, "__setattr__": 28, "__sizeof__": 22, "__sub__": 22, "__truediv__": 22, "__trunc__": 22, "__xor__": 22, "_foo": 13, "_io": 25, "_parse_uri": 25, "_plugin": 25, "a_arrai": 25, "a_list": 25, "ab": 22, "abil": 28, "abl": 8, "about": [7, 9, 22, 28], "abov": [6, 7, 8, 16, 17, 18, 19, 21, 22, 25], "absenc": 16, "absolut": 22, "absolute_valu": 22, "academia": 9, "accept": [2, 14, 22], "access": [9, 10, 13, 15, 16, 18, 22, 28], "accomod": 9, "accur": 22, "achiev": 16, "act": [14, 28], "action": [8, 18, 22, 27, 28], "activ": [7, 8], "actual": [18, 22, 28], "acycl": 29, "ad": [24, 25, 28], "adapt": 11, "add": [1, 14, 16, 17, 18, 19, 22, 24, 28], "add_u": 1, "addit": [2, 7, 11, 13, 14, 22, 23, 24, 27, 28], "addition": [7, 30], "address": [9, 13, 16, 22], "administr": 9, "advanc": [18, 22, 28, 30], "advantag": 28, "aei": 15, "affect": [22, 28], "aforement": [8, 13], "africa": [], "after": [14, 15, 16, 18, 22, 24, 27, 28], "afton": 10, "ag": [1, 2, 27, 28], "again": [2, 22, 28], "against": 22, "age_data": 27, "aim": [13, 22, 23, 24, 28], "aka": 11, "alert": 16, "algorithm": [2, 28], "alia": 25, "all": [1, 7, 8, 9, 13, 15, 20, 22, 23, 24, 25, 27, 28, 29], "allow": [1, 2, 8, 9, 10, 13, 14, 15, 16, 20, 22, 25, 28], "almost": [9, 18, 20], "along": [7, 9, 13], "alpha": [1, 2], "alreadi": [15, 22, 25, 28], "also": [2, 7, 8, 9, 11, 13, 14, 15, 16, 20, 22, 23, 24, 25, 27, 28, 29, 30], "alt": 8, "altern": [9, 20], "although": [9, 15], "alwai": [2, 13, 16, 22, 27], "am": [11, 15, 20, 28], "among": [9, 25], "an": [1, 2, 7, 8, 9, 11, 13, 14, 15, 16, 18, 19, 20, 21, 22, 24, 25, 27, 28, 29, 30], "anaconda3": 25, "analys": 9, "analysi": [9, 10], "ani": [1, 6, 8, 9, 13, 15, 16, 18, 20, 22, 23, 24, 25, 28], "anim": 28, "animal_3": [], "animal_bob": [], "animal_firulai": 28, "animal_john": [], "animal_kenni": 28, "annoi": 18, "annot": 22, "anonym": 7, "anoth": [8, 9, 13, 16, 18, 20, 22, 28, 29], "another_anim": 28, "answer": [7, 13, 14, 15, 16, 17, 18, 20, 22, 27, 28], "anybodi": 18, "anyon": 22, "anyth": [7, 11, 22, 28], "anywher": [2, 14], "apostroph": 15, "appeal": 9, "appear": [9, 16], "append": [16, 20, 22, 28], "appl": [1, 2, 18], "apple_index": 1, "appli": [8, 9, 15, 16, 17, 25], "applic": [8, 9, 10], "approach": [7, 9, 20, 22], "appropri": [2, 14, 27], "ar": [1, 2, 8, 9, 10, 11, 13, 14, 15, 16, 18, 20, 22, 23, 24, 27, 28, 29], "arang": 29, "arbitrari": [18, 20, 22], "area": [8, 9], "arg": [21, 22, 25], "arg1": 11, "arg2": 11, "arg3": 11, "arg_expansion_exampl": 22, "argu": 9, "argument": [11, 13, 16, 21, 29], "argunemnt": 16, "aris": 28, "arithmet": [2, 11, 16, 27], "around": [7, 16], "arr": [8, 29], "arr1": 29, "arr2": 29, "arr2d": 29, "arr3d": 29, "arrai": [13, 22], "arthimet": 19, "arthur": 16, "artifici": 9, "as_grai": 25, "as_integer_ratio": 22, "asarrai": 25, "ask": [7, 11], "ask_and_decid": 28, "ask_and_termin": [], "asp": [], "aspect": 15, "assert": [2, 13], "assign": [2, 13, 14, 15, 16, 22, 28], "assist": 7, "associ": [2, 7, 14, 16, 22], "assum": 2, "assumpt": 7, "asterisk": 22, "astyp": 29, "async": [2, 13], "athlet": 22, "attempt": [7, 27], "attent": 27, "attribut": [15, 16, 17, 22], "attributeerror": 28, "auc": 20, "author": 8, "autom": 9, "automat": [2, 13], "avail": [8, 22, 28], "avoid": [9, 27], "await": [2, 13], "awar": 22, "ax": 25, "axi": [9, 29], "ayotnom": 15, "b": [2, 8, 13, 14, 16, 22, 27, 28], "b_arrai": 25, "b_list": 25, "back": [8, 11, 15, 16, 24, 29], "background": [7, 8], "bad": 27, "banana": [1, 2, 18], "bar": [16, 22], "bari": 18, "bark": 28, "barplot": 9, "base": [7, 9, 15, 20, 25, 30], "bash": [9, 18], "basic": [1, 2, 7, 14, 28, 30], "baz": 16, "beat": 9, "becau": 24, "becaus": [9, 20, 22, 24, 27, 28], "becom": [7, 8, 18, 28], "been": [8, 9, 16, 18, 23, 24, 27, 28], "befor": [6, 7, 8, 9, 16, 22, 23, 24, 27, 28, 29], "beforehand": 11, "begin": [15, 22, 23, 24], "beginn": 9, "behav": [20, 23, 24, 28], "behavior": [18, 22, 28], "behaviour": [23, 24], "behviour": [], "being": [2, 9, 18, 19], "believ": [9, 18], "bell": 20, "belong": [18, 22, 28], "below": [1, 6, 8, 16, 19, 22, 28], "benefit": [], "best": [7, 22, 28], "better": [7, 9, 27], "betwe": 2, "between": [2, 11, 13, 15, 22, 23, 24], "bewar": [8, 18], "beyond": 9, "big": [16, 22], "bilbao": 18, "bill": 8, "billi": 16, "bin": 22, "binari": [9, 22], "birth": [16, 17], "bit": [22, 28, 29], "bit_count": 22, "bit_length": 22, "black": 28, "blank": 15, "blink": 8, "block": [2, 14, 18, 22, 24, 28], "blog": 8, "blue": [8, 28], "blueberri": 18, "bob": 16, "bodi": 22, "book": [25, 30], "bool": [2, 13, 21, 22], "bool_var": [2, 13], "boolean": [1, 2, 13, 14, 15, 16, 17, 22], "border": 8, "borderand": 8, "both": [7, 8, 9, 10, 13, 15, 16, 18, 19, 22, 23, 24, 25, 27, 28], "bottom": 29, "bow": 28, "box": 28, "boxplot": 8, "brace": [15, 16, 18], "bracket": [15, 16], "break": [2, 13, 15, 16, 22, 28], "breakthrough": 7, "brief": [7, 30], "briefli": 9, "broke": [], "browser": 10, "bucket": 18, "buddi": 28, "buffer": 22, "bug": [23, 24], "build": [2, 14, 18, 20, 28], "built": [13, 25, 28], "builtin": 22, "bulk": 22, "burden": 7, "button": [2, 8, 15], "byte": [22, 25], "bytearrai": 22, "byteord": 22, "c": [8, 9, 16, 18, 22], "calcul": [11, 14, 18, 24], "call": [1, 2, 7, 11, 13, 15, 16, 18, 20, 21, 25, 27, 28, 29], "call_plugin": 25, "camel": 13, "camelcas": 28, "can": [1, 2, 7, 8, 9, 10, 11, 13, 14, 15, 16, 20, 21, 22, 23, 24, 27, 28, 29], "cannot": [1, 2, 15, 22, 27], "canva": [7, 23, 24], "capabl": [7, 20], "capit": 13, "captur": 7, "care": [18, 20], "carefulli": 18, "carri": 24, "case": [1, 2, 11, 13, 14, 15, 19, 20, 22, 23, 24, 27], "cast": [2, 13], "catch": 27, "catchal": 18, "categor": 9, "categori": 9, "caus": [18, 22, 27], "caution": [], "cautiou": 22, "ceil": 22, "cell": [1, 2, 6, 11, 13, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 28], "celsiu": [], "center": [], "certain": [11, 13, 16, 22, 27, 28], "challeng": 7, "chang": [6, 8, 9, 16, 17, 18, 22, 23, 24, 28], "channel": 25, "chapter": 25, "charact": [1, 2, 13, 15, 18, 24], "character": 16, "characterist": 15, "charlottesvil": 18, "chatch": 27, "cheat": 8, "check": [2, 8, 13, 14, 16, 18, 19, 20, 21, 24, 25, 27], "check_positive_numb": 27, "cherri": 18, "child": 28, "choic": 9, "chosen": 22, "chunk": 13, "cinderella": 20, "citi": 18, "clariti": [20, 22], "class": [2, 7, 11, 13, 15, 22, 27], "classess": [], "classic": 8, "classs": [], "claus": 27, "clayton": 16, "clean": [7, 9], "clean_word": 20, "cleaner": 27, "cleanup": 27, "clearli": [22, 23, 24, 27], "cli": [7, 30], "click": 8, "clint": 16, "club": 22, "cluster": 10, "cm": 15, "cnn": 20, "cnn_1": 20, "cnn_2": 20, "co": [8, 29], "coconut": 16, "code": [2, 7, 9, 10, 11, 18, 19, 20, 22, 25, 27, 28, 30], "coffe": [16, 17], "colab": 25, "collabor": [23, 24], "collect": [13, 16], "colon": [22, 27], "column": [25, 29], "com": 9, "combin": [2, 6, 7, 8, 10, 14, 15, 16, 18, 21, 22, 25, 29], "come": [7, 9, 11, 15, 20, 22, 25, 28], "comfort": 7, "comma": [13, 16], "command": [7, 10, 25, 30], "comment": [2, 7], "common": [2, 7, 9, 11, 14, 15, 20, 22, 25, 29, 30], "commonli": [7, 9, 30], "commun": [7, 9], "compact": [16, 20], "compar": [9, 20, 22], "comparison": [], "competit": 9, "compil": 11, "complement": 22, "complet": [7, 8, 22, 23, 24, 27], "complex": [1, 2, 7, 9, 14, 18, 22], "complic": [14, 20], "compon": [7, 20, 22], "compos": 10, "comprehens": 22, "comput": [7, 8, 9, 10, 11, 18, 19], "compute_vari": 22, "compute_variances_sort_save_print": 22, "concaten": [2, 15, 16, 27, 29], "concentr": 14, "concept": [7, 9, 20, 30], "concis": [9, 20, 22], "conclud": [7, 30], "concret": 28, "condit": [19, 20, 22, 24], "conditon": 18, "conduct": 9, "confid": 7, "confus": 22, "conjug": 22, "conjunct": [2, 14], "connor": 28, "consecut": 15, "consid": [20, 22, 28], "consist": [8, 22, 29], "consol": 11, "construct": 20, "constructor": [], "consum": 28, "contain": [1, 2, 8, 9, 11, 13, 16, 17, 20, 21, 22, 23, 24, 28, 29], "content": [7, 8], "context": [22, 28], "continu": [2, 7, 13, 29], "contourpi": 25, "contrast": [9, 11, 13, 16, 18, 20], "control": [7, 29, 30], "convent": [9, 13, 22, 28], "convers": 13, "convert": [8, 9, 15, 20, 22, 24], "convet": 13, "copi": [8, 15, 19, 29], "core": 25, "correct": [18, 22, 23, 24], "correctli": [23, 24], "correspond": [15, 16], "could": [16, 18, 22, 25, 28, 29], "count": [9, 22], "countri": 18, "coupl": [8, 18], "cours": [1, 2, 9, 10, 11, 13, 20, 28, 29, 30], "courses_it": 20, "cover": [7, 9, 13, 16, 20, 30], "creat": [1, 2, 6, 8, 9, 11, 13, 14, 15, 16, 19, 20, 21, 28, 29], "creation": 8, "creativ": 28, "csv": 9, "ctrl": 8, "curli": 15, "current": [8, 22, 25], "cursor": 8, "curv": 9, "cut": [2, 14], "cvill": 18, "cyberdyn": 28, "cycler": 25, "d": [1, 2, 8, 11, 14, 16, 20, 22, 25, 28], "dag": 29, "dai": [8, 9, 18, 22], "daili": [7, 30], "danger": 18, "darrel": 16, "data": [1, 7, 8, 10, 14, 15, 18, 19, 20, 22, 28, 30], "data1": 29, "data2": 29, "datafram": 9, "dataset": 8, "datatyp": 16, "dateutil": 25, "datum": 20, "debug": [7, 10, 27, 30], "decid": 28, "decim": [2, 13], "decis": [7, 28], "declar": [25, 29], "decypher_format_arg": 25, "dedic": 8, "deep": [9, 20], "def": [1, 2, 13, 21, 22, 23, 24, 25, 27, 28], "default": [16, 20, 27, 28, 29], "defend": 7, "defin": [1, 2, 13, 18, 19, 20, 21, 22, 27], "definit": [22, 28], "del": [2, 13], "delet": [2, 13, 29], "delight": 9, "delin": 13, "demonstr": [], "denomin": [22, 27], "depend": [8, 9, 18], "depth": 20, "describ": 22, "descript": [1, 2, 22], "descriptor": 22, "design": [9, 22, 28], "despin": [8, 9], "detail": [8, 10, 13, 15, 20, 22], "determin": [13, 22], "develop": [1, 7, 9, 28, 30], "deviat": 29, "devic": 7, "dialog": 8, "dict": [16, 18, 19, 20, 22], "dict_item": 16, "dict_kei": 16, "dict_valu": [16, 28], "dictionari": [1, 15, 17, 18, 22, 28], "dictionary1": 16, "dictionary2": 16, "dictionary3": 16, "did": [11, 16, 19, 28], "didn": 22, "die": 15, "diff": 21, "differ": [1, 2, 7, 8, 9, 13, 15, 16, 18, 21, 22, 28], "difficult": 29, "digit": [23, 24], "dimens": [25, 29], "dimension": [25, 29], "dir": 25, "direct": 29, "directli": [9, 11, 16], "directori": 25, "dirnam": 25, "disappear": 8, "discuss": [2, 7], "divers": [7, 9], "divid": [14, 27], "divide_numb": 27, "divis": [2, 11, 14, 19, 23, 24, 27], "divisbl": 19, "divmod": 22, "dl": 20, "dn": 25, "do": [2, 6, 8, 11, 13, 14, 15, 16, 18, 19, 20, 22, 27, 28], "doc": [22, 27, 29], "docencia": 25, "docstr": 21, "document": [10, 20, 22], "documento": 25, "doe": [8, 15, 16, 18, 19, 20, 22, 25, 27, 28], "doesn": [], "dog": 28, "domain": 9, "don": [7, 8, 15, 16, 18, 20, 22, 24, 28], "done": [8, 11, 28], "door": 7, "dot": 15, "down": [8, 11, 17, 22, 23, 24, 28], "dplyr": 9, "draw": 8, "drop": 9, "drop_end": 29, "drop_second_index": 29, "drop_start": 29, "ds1002": [25, 29], "dtype": 29, "due": [9, 23, 24], "dummi": [19, 22], "dure": [7, 20, 27, 30], "dynam": [2, 15], "e": [2, 11, 13, 14, 15, 16, 18, 20, 22, 24, 27, 28, 29], "each": [2, 8, 9, 13, 14, 16, 18, 19, 20, 21, 22, 25, 28, 29], "earli": [7, 18, 24], "earlier": [13, 18], "easi": [9, 11, 28], "easier": [9, 22, 27, 28], "easili": 9, "economi": 22, "edit": 6, "edu": 10, "educ": 10, "edureka": 8, "effect": 2, "effici": [7, 8, 9, 20, 30], "either": [6, 8, 18, 19, 22, 27], "elabor": [], "element": [1, 2, 15, 16, 18, 20, 23, 24, 25, 27, 29], "elementari": 2, "elif": [2, 13, 19], "elmnt": 16, "els": [2, 13, 19, 20, 21, 22, 23, 24, 25, 28], "email": 7, "eman": 15, "embed": 8, "emploi": [2, 14], "empti": 16, "en": 29, "enabl": [8, 10, 11], "encapsul": 7, "enclos": [15, 20, 22], "encount": [22, 27], "encourag": 7, "end": [15, 16, 18, 20, 22, 24, 27, 28, 29], "endswith": [2, 15], "engin": 28, "enhanc": 11, "enjoi": 7, "enough": 18, "ensur": 27, "enter": [8, 16], "entir": [8, 9, 29], "entiti": 11, "entri": [22, 27], "enumer": [20, 22, 27], "environ": [7, 8, 10, 13], "equal": [2, 14, 21, 22], "equat": [8, 10], "error": [21, 22, 28, 30], "esc": 8, "essenti": [7, 9, 20, 30], "etc": [1, 15, 28], "eval": 11, "evalu": [2, 11, 14, 16, 18, 19, 20], "even": [2, 7, 9, 13, 14, 18, 19, 22, 24, 27, 28], "everi": [2, 7, 9, 13, 15, 18, 25, 29], "every_oth": 29, "everybodi": [], "everyth": [8, 9, 15, 23, 24, 28], "exactli": 22, "exampl": [1, 2, 8, 9, 11, 13, 14, 18, 19, 22, 23, 24, 27, 28, 29], "excel": 9, "except": [2, 13, 15, 20, 25], "exceptiontyp": 27, "exceptiontype1": 27, "exceptiontype2": 27, "exceptiontype3": 27, "excercis": 16, "exclud": 20, "execut": [7, 9, 10, 11, 18, 20, 27], "exercis": 28, "exhibit": 22, "exist": [15, 20, 25, 28], "exit": 24, "expect": [7, 18, 23, 24, 27], "experi": [7, 9], "explain": [22, 23, 24, 28], "explan": [7, 10], "explicit": 9, "explor": [9, 10, 22], "exponenti": [2, 14], "express": [9, 15, 16, 18, 20, 30], "expresss": [2, 14], "extend": 28, "extens": [8, 9, 25, 28], "extent": 7, "extern": 25, "extra": 20, "extract": [2, 15], "ey": 28, "f": [15, 16, 18, 20, 22, 25, 27, 28], "facilit": 10, "fact": [9, 22, 28], "fail": [22, 23, 24, 27], "fair": 9, "fall": 20, "fals": [2, 9, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 28], "familiar": [8, 9, 10, 18], "fan": 20, "far": [13, 15, 18, 20, 28], "farenheit": [], "fast": 25, "faster": 28, "fastx": 10, "father": 15, "favorite_numb": 1, "fcn": 22, "fcn_bad_arg": 22, "fcn_force_keyword": 22, "fcn_nothing_to_return": 22, "fcn_swapped_arg": 22, "featur": [7, 9, 15, 16, 28, 30], "feedback": 7, "feel": [7, 9], "femal": [], "few": [8, 28, 30], "field": 28, "figur": 2, "file": [8, 9, 10, 11, 22, 25, 30], "file_or_url_context": 25, "filenotfounderror": 25, "filesystem": 8, "fill": [23, 24], "fillna": 9, "film": 20, "filter": [9, 20, 25], "final": [2, 9, 11, 13, 15, 28], "find": [1, 2, 7, 9, 16, 22, 25, 27, 29], "first": [1, 2, 9, 15, 16, 17, 18, 22, 23, 24, 25, 29], "firstval": 1, "firulai": 28, "fit": 28, "fix": 22, "flag": 13, "flip": 29, "float": [2, 13, 16, 22, 28, 29], "float64": 29, "float_arr": 29, "float_var": [2, 13], "floor": [2, 14, 22], "flow": 18, "flush": 22, "fn": 25, "fname": 25, "focu": [7, 9], "focus": [7, 9, 30], "folder": 8, "follow": [2, 7, 8, 9, 11, 13, 14, 16, 18, 19, 22, 23, 24, 27, 28], "fonttool": 25, "foo": [16, 22, 29], "foomax": 29, "foomean": 29, "foomin": 29, "foosin": 29, "foostd": 29, "forc": [22, 28], "forcibli": 22, "forget": 27, "form": [11, 20, 22, 28, 29], "formal": 9, "format": [7, 8, 10, 18, 22, 25], "format_hint": 25, "format_spec": 22, "formatt": 22, "forth": [2, 14], "fortran": [9, 18], "found": 18, "four": [2, 14], "frame": 9, "free": 7, "from": [2, 7, 8, 9, 13, 14, 15, 16, 17, 18, 20, 21, 22, 25, 27, 28], "from_byt": 22, "fruit": 1, "func": 25, "function": [1, 2, 7, 9, 11, 13, 15, 16, 20, 21, 23, 24, 27, 28, 29, 30], "function_nam": 11, "fundament": [7, 9, 20, 30], "further": 20, "futur": [7, 10, 13, 22, 27], "g": [8, 15, 16, 18, 20, 22, 27, 28], "game": 9, "gave": 22, "gbm": 22, "geeksforgeek": [], "gener": [9, 15, 18, 22, 28, 29], "get": [1, 2, 8, 9, 10, 11, 13, 15, 16, 18, 20, 25, 29, 30], "getattr": 22, "ggplot2": 9, "git": 7, "github": [7, 30], "give": [2, 7, 11, 13, 14, 15, 18, 22, 27, 28, 29], "given": [2, 7, 8, 13, 15, 16, 17, 18, 20, 22, 23, 24, 25, 28, 30], "global": [2, 13], "go": [7, 10, 11, 15, 20, 25, 28], "goal": 7, "god": [], "goe": 18, "gone": 7, "goo": 29, "good": [2, 7, 14, 18, 28], "goodby": 2, "googl": 25, "got": 18, "grammar": 9, "grape": 18, "graph": 29, "graphic": [9, 10], "great": [9, 11, 22], "greater": [2, 9, 14, 23, 24], "green": 8, "greet": [11, 28], "grei": 8, "group": [2, 7, 14, 22, 23, 24, 28], "grouped_boxplot": 8, "guess": 7, "guid": 7, "h": 9, "ha": [2, 8, 9, 11, 13, 14, 18, 20, 21, 27, 28, 29], "habit": 7, "had": 19, "half": 1, "hand": [7, 9, 16], "handi": [16, 28], "handl": [7, 8, 9, 30], "handler": 27, "happen": [1, 8, 24, 27], "hard": 27, "has_atleast_one_seven": [23, 24], "hasattr": 25, "hash": [16, 22], "haskel": 9, "have": [1, 2, 7, 8, 9, 10, 13, 14, 15, 16, 18, 22, 23, 24, 25, 27, 28, 29], "header": 28, "heard": 28, "height": 28, "hello": [2, 11, 13, 15, 22, 28], "help": [7, 8, 9, 22, 28], "here": [2, 7, 8, 9, 11, 13, 14, 15, 16, 18, 20, 22, 24, 25, 27, 28, 29], "hesit": 7, "hex": [13, 22], "hexadecim": 13, "hide": 28, "hierarchi": 29, "high": 9, "higher": [9, 29], "highli": 9, "hint": [18, 19, 28], "hit": [2, 15, 24], "hold": [2, 13, 22], "home": [25, 28], "host": 22, "hotel": 25, "hour": 7, "how": [2, 9, 11, 13, 14, 18, 19, 20, 22, 27, 28], "howev": [9, 13, 14, 16, 18, 22, 25, 28], "hpc": 10, "html": [8, 22, 27, 29], "http": [8, 9, 11, 16, 17, 22, 27, 29], "hue": 8, "human": 28, "i": [1, 2, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 29, 30], "id": [13, 14, 22], "idea": [7, 8, 15, 22], "ideal": 10, "ident": 2, "identifi": [7, 27, 28], "ii": [20, 27, 30], "illustr": [], "imag": [8, 22], "imageio": 25, "imageio_imread": 25, "imageio_plugin": 25, "imagin": 19, "imaginari": 22, "img": 25, "immut": [2, 16], "imopen": 25, "imopen_arg": 25, "imper": 18, "implement": [9, 11, 20, 28], "impli": 2, "implicitli": [2, 20], "import": [2, 7, 8, 9, 13, 15, 16, 17, 18, 20, 22, 28, 29, 30], "importantli": [8, 20], "impos": 18, "improv": 20, "imread": 25, "imshow": 25, "includ": [7, 8, 9, 15, 16, 18, 19, 20, 22, 23, 24, 27, 28, 30], "incomplet": 7, "incorpor": [15, 27], "incorrect": [7, 22, 27], "increas": 19, "increasingli": 7, "increment": [2, 14], "indent": [22, 27, 28], "indentationerror": 27, "indenten": 27, "index": [9, 17, 18, 20, 22, 25, 29], "indexerror": 25, "indic": [1, 8, 15, 20, 22, 27, 29], "individu": [8, 15, 24], "industri": 9, "ineffici": 28, "inequ": [2, 14], "infer": 22, "info": [2, 8, 15, 16, 22, 24], "inform": [7, 13, 15, 22, 28], "inher": 15, "inherit": 22, "initil": 28, "input": [8, 11, 21, 22, 27, 28], "insert": [8, 16, 22], "insid": [8, 15, 18, 22, 27, 28], "instal": 7, "instanc": [22, 28], "instanti": 28, "instead": [1, 13], "instent": [], "instruct": [9, 11], "instructor": [7, 11, 22], "int": [2, 13, 14, 16, 22, 24, 27], "int32": 29, "int64": 29, "integ": [1, 2, 13, 14, 16, 18, 19, 21, 22, 24, 28, 29], "integer_var": 13, "integr": [10, 22], "intellig": 9, "intens": 9, "inter": [18, 20], "interact": [8, 10, 11, 13], "interchang": 22, "interest": 18, "interfac": [7, 8, 10, 28], "intermedi": [7, 30], "internat": 11, "interpet": 20, "interpret": [2, 7, 11], "intersect": 16, "introduc": [6, 7, 8, 18, 20, 30], "introduct": [15, 29, 30], "introductori": [7, 30], "introspect": 8, "intuit": 9, "invalid": [1, 13, 25, 27], "invalu": 7, "invers": 27, "invok": [], "involv": 9, "io": [8, 25], "io_mod": 25, "ipynb": 8, "ipython": 11, "is_odd": 20, "is_read_request": 25, "isinst": [2, 13, 22, 25], "isn": [22, 25], "itali": 18, "item": [8, 15, 16, 18, 20, 22, 29], "iter": [16, 19, 22, 24], "its": [1, 2, 7, 8, 9, 13, 14, 15, 16, 18, 20, 22, 24, 25, 27, 28, 30], "itself": [1, 22, 23, 24, 28], "ix": 18, "i\u00f1igo": 15, "j": [8, 18, 20], "java": 9, "javascript": 9, "javi": [15, 25], "javier": [11, 15, 22], "job": 10, "john": [16, 28], "join": [13, 15], "jpg": 25, "judgment": 7, "jupyt": [7, 10, 11, 23, 24], "jupyter_notebook_cheatsheet_edureka": 8, "just": [2, 8, 11, 13, 14, 15, 16, 22, 27, 28], "k": [8, 20], "kaggl": 9, "kaggle_survey_2022_respons": 9, "keep": [1, 7, 16, 18, 20, 22, 27], "kei": [1, 15, 16, 18, 20, 22], "kenni": 28, "kernel": [23, 24], "key_express": 20, "keyowrd": 27, "keyworad": [6, 8], "keyword": [2, 14, 22, 27, 28, 29], "keywork": 22, "kg": 28, "kill": 15, "kind": [11, 19, 20, 25, 27, 28], "kiwi": 18, "kiwisolv": 25, "know": [1, 13, 18, 22, 28], "known": [9, 11, 18, 22], "kumquat": 18, "kwarg": [22, 25], "labels": 9, "lack": 28, "lambda": [2, 9, 13], "languag": [2, 7, 8, 10, 11, 18, 22, 28, 30], "languages_dat": 9, "larg": 20, "largest": [2, 14], "last": [2, 13, 15, 16, 18, 20, 22, 25, 27, 28, 29], "lastli": 22, "later": [2, 13, 16, 22, 28, 29], "latex": [8, 10], "launch": 11, "layer": 20, "layman": 13, "lazili": 20, "lazy_load": 25, "lbp": [], "lead": 15, "learn": [8, 9, 10, 13, 14, 15, 16, 18, 20, 22, 27, 28], "learnbyexampl": [16, 17], "least": [21, 22, 23, 24], "left": [2, 8, 16], "legaci": 25, "legacy_mod": 25, "len": [15, 16, 21, 22, 29], "length": [15, 21, 22], "lengthi": 20, "less": [2, 9, 14, 18, 19], "lesser": 7, "lesson": [10, 11, 13, 14, 15, 16, 18, 20, 22, 27, 28], "let": [8, 10, 11, 16, 18, 20, 22, 27, 28], "letter": [1, 2, 13, 16, 17, 20], "level": [9, 29], "leverag": 9, "lib": 25, "librari": [7, 9, 22, 27, 30], "lifetim": 22, "like": [1, 2, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 25, 28], "likewis": 15, "line": [1, 2, 7, 9, 10, 11, 13, 15, 16, 18, 20, 22, 25, 27, 28, 30], "linear": 8, "linspac": 25, "lisp": 9, "list": [1, 2, 8, 13, 14, 15, 17, 18, 19, 22, 23, 24, 27, 28, 29], "list1": 16, "list2": 16, "list3": 16, "list_iter": 20, "liter": [2, 13, 14, 15], "littl": 22, "live": [8, 10, 20], "ll": 7, "load": [8, 11], "load_dataset": 8, "local": [7, 8], "locat": 13, "log": 27, "logic": [7, 9], "logreg": 22, "long": [7, 13, 19], "longer": 8, "look": [9, 10, 11, 18, 20, 22, 29], "lookfor": 18, "loop": [11, 16, 19, 21, 22, 23, 24], "lot": [2, 9], "low_memori": 9, "lower": [9, 13, 15, 18, 20, 29], "lowercas": [13, 20], "lowest": 22, "lucki": [23, 24], "m": [2, 8, 14, 15, 20], "machin": [9, 10, 11, 28], "made": [8, 24], "mai": [7, 9, 18, 20, 22, 27, 28], "main": [8, 9, 15], "maintain": [7, 8, 22, 28], "make": [2, 7, 9, 10, 14, 17, 18, 19, 22, 23, 24, 28], "manag": [7, 9], "manage_plugin": 25, "mango": 18, "mani": [2, 7, 8, 9, 11, 13, 14, 15, 18, 19, 22, 28], "manipul": [2, 7, 9, 14, 28], "manual": [20, 28], "manufactur": 28, "map": [8, 16, 28], "mardown": 8, "margin": 8, "markdown": [6, 8, 10, 17, 23, 24], "mask": 25, "match": 27, "mate": 27, "materi": 7, "math": [11, 29], "mathemat": [2, 9, 11, 14], "mathemt": 2, "matlab": [9, 18], "matplotlib": [9, 25], "matter": 22, "max": [18, 25, 28, 29], "max_it": 19, "max_val": [18, 19], "maximum": [18, 19], "mayb": [18, 27], "me": [9, 18, 28], "mea": 20, "mean": [2, 8, 9, 11, 13, 14, 15, 16, 22, 25, 28, 29], "meaning": [22, 27], "meas_mmhg": 20, "meas_mmhg_dl": 20, "measur": 20, "mechan": 28, "media": 8, "meet": 20, "membership": [2, 14], "memori": [2, 9, 13, 14, 20, 22], "mention": [11, 13, 15, 16, 20, 28], "menu": 6, "menubar": [8, 23, 24], "messag": [11, 15, 18, 27, 28], "met": [18, 20], "method": [7, 9, 17, 20, 22], "metric": 20, "mg": 20, "microcosm": 2, "might": [1, 11, 18], "min": [25, 29], "mind": [1, 20], "minim": 7, "minu": 16, "miscellan": 30, "miss": [16, 22, 27], "mistak": 27, "mix": [15, 16, 20, 28], "ml": 20, "mmhg": 20, "mmm": 28, "mod": 22, "mode": [6, 11, 25], "model": [18, 20, 22], "model_arch": 20, "modern": 9, "modif": 8, "modifi": [8, 13, 16, 28, 29], "modul": [7, 22, 25, 28, 29, 30], "modulo": 19, "modulu": [2, 14], "moment": [], "monitor": 10, "month": [16, 17], "montoya": 15, "mordisquito": 28, "more": [1, 2, 7, 9, 13, 14, 15, 16, 17, 20, 22, 27, 28, 30], "moreov": 9, "most": [2, 7, 8, 9, 10, 13, 14, 15, 16, 18, 20, 22, 25, 27, 28, 29, 30], "mous": 6, "move": [2, 15], "much": [7, 9, 20, 22, 28], "multi": 9, "multidimension": 29, "multipl": [2, 9, 10, 11, 13, 14, 16, 22, 27], "multipli": [14, 16, 17], "must": [1, 2, 13, 16, 22, 25, 27], "mutabl": 9, "my": [11, 15, 28], "my_anim": 28, "my_arg": 22, "my_args2": 22, "my_args_dict": 22, "my_dict": 28, "my_dog": 28, "my_nam": 15, "my_rang": 20, "my_str": 28, "my_var": [2, 14], "myarr": 29, "myit": 20, "mylist": 16, "myset": 20, "mystr": 15, "myvar": 13, "n": [2, 15, 22, 28], "n_ob": 9, "naive_bay": 22, "name": [1, 7, 11, 15, 16, 17, 18, 21, 22, 23, 24, 27, 28, 30], "nameerror": [2, 13, 22, 27], "nameoftheclass": 28, "narr": [8, 10], "nativ": 22, "natur": 9, "navig": 7, "nbconvert": 8, "ndarrai": [25, 29], "ndigit": 22, "ndim": [25, 29], "necessari": [22, 28], "need": [2, 7, 8, 9, 13, 15, 16, 20, 22, 24, 27, 28], "neg": [13, 15, 22, 27], "negate_coord": 22, "neglig": 9, "nest": [8, 16, 29], "networkx": 25, "new": [1, 7, 8, 9, 13, 15, 20, 22, 24, 28, 29], "new_anim": 28, "new_foo": 29, "newer": 28, "newlin": 22, "next": [2, 11, 15, 16, 20, 22, 28], "nice": [15, 29], "nlp": 20, "nobel": 7, "non": [16, 22], "none": [2, 13, 21, 22, 25], "nonloc": [2, 13], "nonneg": 21, "normal": [8, 27], "notabl": 10, "notat": 29, "note": [2, 7, 9, 14, 20, 28], "notebook": [7, 10, 11, 23, 24], "noth": [15, 18, 22, 27], "nothng": [], "notic": 18, "notion": 20, "noun": [2, 14], "now": [1, 6, 8, 11, 15, 16, 18, 19, 22, 24, 27, 28], "np": [25, 29], "num": [22, 23, 24, 27], "num1": 13, "num2": 13, "num_as_str": 24, "number": [1, 2, 6, 8, 9, 13, 15, 16, 17, 18, 19, 22, 23, 24, 27], "numbers2": 16, "numbers4": 16, "numer": [1, 14, 16, 17, 18, 21, 22], "numeric_str": 29, "numpi": [7, 29, 30], "o": [2, 15, 25], "object": [8, 9, 13, 14, 15, 16, 18, 20, 22, 27, 30], "obtain": 18, "obviou": 29, "obvious": 28, "occur": [22, 27], "odd": [18, 19, 20, 23, 24], "offer": [2, 9, 14], "offic": 7, "offset": 8, "often": [7, 9, 16, 22], "ogi\u00f1i": 15, "ok": 28, "old": 28, "old_valu": 29, "omit": [7, 15, 29], "onc": [16, 22, 25, 28], "ondemand": 7, "one": [6, 7, 8, 15, 16, 17, 19, 20, 21, 22, 23, 24, 27, 28, 29], "ones": [2, 14, 15, 20, 22, 25, 28], "onli": [1, 2, 13, 15, 16, 20, 22, 23, 24, 27, 28, 29], "oo": [], "ood": 10, "oof": 29, "open": 7, "oper": [7, 11, 13, 18, 19, 22, 27, 28, 29], "operand": [16, 27], "optim": [2, 8, 13], "option": [13, 15, 20, 22, 27], "orang": 1, "order": [8, 16, 18, 20, 22, 28], "org": [8, 9, 11, 16, 17, 22, 27, 29], "organ": [7, 8, 9, 16, 30], "orient": [7, 9, 30], "origin": [16, 22, 24, 28], "other": [2, 7, 8, 9, 14, 15, 21, 22, 25, 27, 28, 29], "otherwis": [2, 13, 18, 19, 22], "oti": 15, "ouput": 13, "our": [7, 10, 11, 15, 22, 28], "out": [1, 2, 16, 17, 20, 21, 22], "output": [8, 11, 13, 16, 20, 21, 22], "outsid": [8, 13, 21, 22, 28], "over": [9, 18, 19, 20, 22, 29], "overflowerror": 22, "overrid": 28, "overwork": [], "overwrit": 16, "own": [1, 7, 8, 9, 28], "p": [2, 14], "packag": [7, 9, 22, 29, 30], "packet": 28, "page": 8, "pair": [1, 16, 20, 22], "palett": 8, "panda": [7, 9, 30], "paradigm": 28, "parallel": 18, "param": [], "paramet": 28, "parametr": 22, "parent": 28, "parenthes": [2, 11, 14, 16, 18, 22, 28], "parenthesi": [11, 13, 18, 22, 28], "pars": [25, 29], "part": [1, 15, 22, 27], "particip": 7, "particular": [13, 15, 16, 28], "particularli": [9, 16], "pascal": 9, "pass": [1, 2, 13, 15, 16, 18, 21, 23, 24, 27, 28], "pastel": 8, "path": 25, "pattern": 8, "pd": 9, "pdf": 8, "peanut": 16, "peer": 7, "peopl": [9, 22], "per": 9, "perfectli": [7, 9], "perform": [8, 13, 14, 15, 16, 22, 24, 27, 28, 29], "person": [7, 18, 28], "phonelist": 16, "photo": 25, "photo_mask": 25, "photo_sin": 25, "phrase": 28, "piec": [11, 20, 22, 27], "pillow": 25, "pip": 25, "pitt": 18, "pixel": 25, "place": [16, 20], "placehold": 27, "plan": 27, "platform": 11, "pleas": 7, "plot": [8, 9, 22], "plt": [9, 25], "plugin": 25, "plugin_arg": 25, "po": 16, "point": [9, 10, 13, 16, 23, 24], "polici": 7, "polymorph": [], "popul": [1, 19, 22], "popular": 7, "portabl": 10, "posit": [1, 13, 16, 18, 20, 22, 27], "possibl": [8, 22], "post": 7, "post0": 25, "potenti": 7, "pow": 22, "power": [9, 15], "pr": 22, "practic": [7, 25], "pre": 25, "preced": [2, 14, 22], "precis": [20, 22], "predefin": 28, "predominantli": 9, "prefer": 13, "prefix": 15, "prepar": [7, 15], "press": 8, "pretti": 28, "pretzel": 28, "prevent": 27, "previou": [7, 9, 11, 14, 15, 16, 18, 20, 28], "primari": 7, "primarili": [7, 9, 30], "primit": 16, "princess": 20, "principl": 9, "print": [1, 2, 11, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29], "prize": 7, "problem": [7, 9, 23, 24], "procedur": [9, 28], "process": [7, 8, 9], "prod": 25, "produc": [18, 20, 21, 22], "product": [9, 14, 22], "profession": 9, "program": [2, 7, 10, 18, 19, 22, 30], "progress": 7, "prolog": 9, "promot": 9, "prompt": 8, "properli": 21, "properti": [16, 28], "prorivd": 17, "protocol": 22, "prototyp": 9, "provid": [7, 9, 16, 20, 22, 27, 28, 30], "public": 9, "pull": [16, 17], "purpos": [2, 9, 13, 21, 22, 28], "put": [2, 14, 20, 29], "py": 25, "pydata": [8, 9], "pylab": 9, "pypars": 25, "pyplot": 25, "pyspark": 20, "pythionist": [], "python": [1, 2, 7, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 22, 25, 27, 28, 30], "python3": 25, "python_funct": [], "pythonist": 28, "pytorch": 9, "pywavelet": 25, "q12": 9, "question": [2, 7, 9, 14, 16, 17], "quick": [9, 10], "quicker": 20, "quietli": 7, "quit": [1, 18, 19, 20, 28], "quot": [15, 16, 22], "quotat": 2, "r": [7, 9, 10, 16, 18, 22, 30], "rais": [2, 13, 22, 25], "randint": 29, "random": 29, "rang": [13, 18, 24], "rangi": 16, "rapidli": 9, "rapunzel": 20, "rasero": 15, "rather": [9, 16], "ratio": 22, "ration": 22, "raw": 8, "re": [7, 9, 16, 22, 28], "reach": [18, 20, 22], "read": [2, 7, 9, 11, 20, 22, 25, 27, 30], "read_csv": 9, "readabl": [9, 22], "readi": [23, 24], "readthedoc": 8, "real": 22, "realli": [27, 28], "realpython": [], "reason": 27, "reassign": [2, 13, 15, 16, 22], "recal": 20, "recent": [2, 13, 15, 16, 18, 20, 22, 25, 27, 28], "recip": 28, "recipt": [], "recogn": 22, "recommend": 8, "redefin": [23, 24, 28], "redifin": [], "ref": [], "refer": [1, 2, 9, 11, 13, 14, 15, 22, 28, 29], "referenc": [22, 25], "reflect": [], "regardless": 27, "regex": 9, "regress": 20, "regular": 9, "reiter": 28, "rel": 8, "relat": [], "relationship": 2, "relev": [23, 24], "remain": 9, "remaind": [2, 14, 20], "rememb": [2, 9, 13, 15, 17, 20, 28], "remov": [15, 22, 29], "repeat": [13, 15, 16, 18], "repetit": [2, 15], "repl": 11, "replac": [15, 25, 28], "repli": 11, "repr": 22, "repres": [16, 20, 22], "represent": [8, 13, 22], "reproduc": 10, "request": [22, 25], "requir": [7, 9, 11, 18, 21, 22, 25], "research": [9, 10], "reserv": 2, "reset": 8, "reset_index": 9, "resolut": 22, "resourc": [7, 9], "respect": [9, 14, 16], "respons": 9, "rest": 15, "restart": [23, 24], "restrict": [2, 13], "result": [2, 7, 9, 11, 13, 14, 15, 16, 18, 20, 22, 25, 27], "retain": 20, "retriev": 20, "return": [2, 8, 13, 14, 15, 16, 20, 21, 23, 24, 25, 27, 29], "reus": 28, "reusabl": [9, 22, 28], "reusibl": [], "revers": [15, 29], "reward": 7, "ri": 25, "rich": [8, 10], "ride": 7, "right": [2, 7, 16, 18, 21, 22], "rightarrow": [23, 24], "risk": 7, "rivanna": [7, 10], "rn": 16, "rng": 16, "rnn": 20, "road": 28, "robin": 16, "rom": 8, "room": 20, "rough": 8, "round": 22, "row": [25, 29], "rstudio": 10, "rubi": 9, "rule": [1, 2, 8, 9, 13, 28], "run": [6, 11, 19, 23, 24, 27], "runtimeerror": 25, "sai": [11, 15, 22, 28], "said": 9, "salut": 28, "sam": 16, "samantha": 16, "same": [2, 6, 8, 13, 14, 15, 16, 20, 22, 27, 28], "sarah": 16, "satisfi": 25, "save": [8, 13, 15, 22, 28, 29], "saw": [14, 15, 16], "scala": 9, "scalabl": 28, "scalar": [16, 17], "scalat": 28, "schema": [], "scheme": [16, 28], "scienc": [7, 10, 30], "scientif": 10, "scientist": [7, 30], "scikit": [9, 25], "scipi": [25, 29], "scratch": 28, "screen": 11, "script": [9, 11], "seaborn": [8, 9], "search": 25, "searchin": 18, "second": [13, 15, 16, 22, 27, 28], "secondv": 1, "secong": 15, "section": [7, 8, 27], "see": [1, 7, 9, 13, 14, 15, 16, 17, 18, 20, 22, 27, 28], "seem": 27, "seen": [11, 22], "select": [8, 15, 23, 24, 28], "self": [8, 22, 25], "semest": [7, 11, 20], "sens": [2, 14], "sensibl": [21, 22], "sensit": [1, 2, 13], "sep": 22, "separ": [8, 9, 13, 16, 23, 24, 28, 29], "seq": 18, "sequenc": [8, 15, 16, 20], "sequenti": [2, 14, 30], "seri": [19, 20], "serv": 7, "server": 10, "servic": 7, "session": [7, 25], "set": [2, 7, 8, 9, 10, 14, 18, 19, 22, 25, 28], "set1": 16, "set2": 16, "set_them": 8, "sever": [7, 13, 15, 16, 18, 22, 23, 24], "sex": [], "shape": [9, 25, 29], "share": [8, 10, 20], "sheet": 8, "shell": 11, "shift": 8, "short": [1, 2, 14, 22], "shortchang": 7, "shortcut": [6, 8], "shorter": 20, "shot": 7, "should": [1, 2, 7, 8, 13, 18, 19, 20, 22, 24, 27, 28, 29], "show": [8, 13, 21, 22, 23, 24, 28, 29], "show_arg_expans": 22, "show_entri": 22, "show_result": 22, "show_scop": 22, "shown": [6, 8, 22], "si": 15, "side": [23, 24], "sign": 22, "signatur": 22, "signific": 22, "similar": [9, 15, 16], "similarli": [8, 15, 16, 27, 29], "simpl": [1, 2, 8, 13, 22], "simpli": [11, 22], "simplifi": [8, 29], "sin": [25, 29], "sinc": [7, 16, 22, 27], "singl": [2, 13, 14, 15, 16, 18, 22, 29], "sir": 16, "sit": 7, "site": [2, 7, 14, 25], "situat": [20, 27], "six": 25, "size": [9, 22], "skill": [7, 22, 30], "skimag": 25, "skip": [18, 27], "slice": 17, "small": [7, 21], "smoker": 8, "sn": [8, 9], "snake": 13, "snoopi": 16, "so": [1, 2, 7, 8, 9, 11, 13, 14, 15, 16, 18, 20, 22, 27, 28, 29], "softwar": [7, 9, 28], "solut": [9, 24], "solv": 9, "some": [2, 6, 7, 8, 9, 11, 13, 14, 15, 19, 22, 28, 29, 30], "somebodi": 22, "someth": [18, 19, 27], "sometim": [1, 7, 18, 27], "soon": [11, 14, 15, 27], "sort": [1, 16, 25], "sourc": [7, 9, 10, 11, 25, 28], "space": [2, 13, 15, 18, 22], "spain": 18, "special": [14, 19, 28], "specif": [1, 2, 9, 13, 15, 20, 22, 27, 28, 29], "specifi": [2, 13, 15, 16, 20, 22, 27, 28], "speed": 9, "spell": 9, "spend": 7, "split": [15, 16], "spoken": 7, "spring": 20, "sql": [9, 16], "squar": [21, 22], "square_arg": 21, "st": 20, "stabl": [9, 29], "standard": 29, "start": [1, 2, 7, 8, 13, 14, 15, 16, 18, 20, 22, 28, 29, 30], "startswith": [2, 15], "state": [8, 9, 28], "statement": [18, 19, 22, 23, 24, 25, 27], "static": 22, "statist": [9, 25], "statsmodel": 9, "std": [25, 29], "stdout": 22, "step": [10, 14, 15, 16, 21], "stick": 28, "still": [13, 28], "stop": [15, 16, 20, 27], "stop_word": 20, "stopiter": 20, "store": [2, 9, 13, 15, 16, 18, 19, 20, 24, 28], "str": [2, 13, 15, 18, 21, 24, 27], "stream": 22, "strictli": 28, "string": [1, 13, 16, 18, 19, 21, 22, 24, 27], "string1": [2, 15], "string2": [2, 15], "string_": 29, "string_var": [2, 13, 15], "strip": 15, "strn": 20, "structru": 13, "structur": [1, 2, 7, 9, 13, 14, 15, 20, 28, 30], "student": [7, 30], "studi": [13, 15, 18, 20, 22], "style": [8, 9], "subclass": 22, "subject": [2, 14, 16], "subject_id": [1, 2], "submit": [10, 23, 24], "subscript": 16, "subset": 2, "substr": 15, "substract": 11, "subtract": [2, 14, 21], "successfulli": 7, "sucess": 27, "suggest": [15, 22], "suitabl": [9, 22], "sum": [9, 13, 14, 23, 24, 25], "sum_digit": 24, "suma": 22, "sumat": 24, "summar": 20, "summari": [2, 14], "super": 18, "superior": 9, "support": [2, 7, 10, 14, 15, 16, 20, 22, 27], "suppos": 28, "sure": [8, 19, 23, 24], "surpris": [], "survei": 9, "survey_data": 9, "swap": [], "switch": 25, "sy": 22, "sylvest": [], "symbol": [13, 14, 16], "syntax": [1, 2, 9, 14, 20, 27, 28], "syntaxerror": [1, 13, 18, 22, 27], "system": [9, 22, 25, 28], "t": [7, 8, 15, 16, 18, 20, 22, 24, 25, 28], "tab": [8, 18], "tabl": 16, "tailor": 7, "take": [1, 7, 11, 13, 16, 18, 20, 21, 22, 27, 28, 29], "talk": 28, "tall": 15, "tan": 29, "target": 28, "task": [7, 9, 22, 23, 24, 28], "team": 22, "technic": [7, 22], "techniqu": [7, 9, 30], "technologi": 28, "tell": 18, "temperatur": [], "templat": 28, "tensorflow": 9, "term": [9, 13, 22], "termin": [28, 30], "test": [2, 14, 19, 21, 22, 23, 24, 28], "text": [6, 8, 10, 15, 21, 22], "than": [2, 8, 9, 14, 16, 18, 19, 20, 22, 23, 24], "thei": [2, 9, 10, 13, 14, 16, 18, 20, 22, 28], "them": [1, 7, 8, 10, 11, 13, 14, 15, 16, 18, 20, 22, 27, 28], "themselv": [], "theori": 22, "therefor": [2, 14, 16, 18, 22, 27, 28], "thi": [1, 2, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 27, 28, 30], "thing": [2, 8, 14, 15, 18, 20, 22, 27, 28], "think": [7, 9, 28], "third": 27, "this_set": 18, "this_tupl": 18, "this_var": 13, "thisvar": 13, "thorugh": 8, "those": [1, 9, 15], "though": [13, 20, 22, 27], "thought": [1, 28], "thr": 22, "three": [1, 2, 8, 14, 22, 25, 29], "thresh": 22, "threshold": 22, "through": [2, 7, 8, 9, 11, 13, 18, 19, 20, 22, 23, 24, 28], "throughout": [7, 11, 13, 16, 28], "throuhg": 18, "throw": 22, "thu": 8, "tick": 8, "tick_param": 9, "tidyvers": [7, 9], "tifffil": 25, "time": [7, 8, 9, 16, 20, 22, 27, 28, 29], "timeit": [], "tip": 8, "titl": 9, "to_byt": 22, "togeth": [13, 28], "tok": 20, "token": 20, "tom": 16, "too": [15, 22, 27, 28], "tool": [7, 10, 30], "toolbar": 8, "top": 29, "topic": [1, 2, 29, 30], "total": 1, "total_bil": 8, "total_volum": [1, 2], "traceback": [2, 13, 15, 16, 18, 20, 22, 25, 27, 28], "track": [18, 20], "trail": 15, "transform": 20, "translat": 9, "transpar": 7, "transpos": 25, "treat": 22, "tree": 29, "tri": 27, "trim": 8, "tripl": 22, "troubl": 22, "troubleshoot": 7, "true": [2, 8, 9, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 27, 28], "truncat": 22, "try": [1, 2, 6, 8, 13, 18, 19, 21, 22, 28], "tup_metr": 20, "tupl": [1, 13, 15, 17, 18, 19, 22, 27], "tuple0": 16, "tuple1": 16, "turn": [23, 24, 29], "tutori": 7, "two": [1, 2, 7, 8, 9, 13, 14, 15, 16, 21, 22, 27, 29, 30], "txt": 21, "type": [1, 6, 7, 8, 9, 11, 14, 15, 16, 20, 22, 25, 27, 28], "type1": 13, "type2": 13, "type3": 13, "typeerror": [15, 16, 22, 27], "typic": [9, 13, 28], "u": [20, 22, 28], "uhoh": 22, "unboundlocalerror": 22, "uncomfort": 7, "underscor": [1, 2, 13], "understand": [7, 9, 15, 18, 20, 22, 30], "undoubtedli": 7, "unend": 18, "unexpect": [8, 22], "unformat": 8, "unhandl": 27, "union": 16, "uniqu": [2, 13, 16, 28], "unit": 20, "units1": 20, "units2": 20, "unknown": 7, "unless": [9, 27, 28], "unlik": [9, 28], "unord": [16, 18], "unpack": 18, "unprepar": 7, "unspecifi": 22, "unsupport": [16, 27], "unsur": 7, "until": [18, 24, 28], "up": [7, 8, 15, 27], "updat": [2, 14, 16, 22, 24, 29], "upload": 8, "upon": 29, "upper": [15, 20, 28], "uppercas": [13, 20], "uri": 25, "us": [1, 2, 6, 7, 8, 9, 10, 11, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30], "usa": 18, "usabl": 22, "usag": 8, "user": [8, 10, 25], "usual": [8, 9, 16, 20, 22, 25, 27], "util": [9, 18], "uva": 7, "v": [8, 18, 20], "v2": 25, "vagu": 27, "val": [18, 19, 20, 21, 22], "valencia": 18, "valid": 22, "vals_greater_than_or_equal_to_threshold": 22, "valu": [1, 2, 13, 14, 18, 19, 20, 21, 25, 28], "valuabl": 10, "value_count": 9, "value_express": 20, "valueerror": [18, 25, 27], "var": [18, 20, 21, 25], "var_float": [2, 13], "var_int": [2, 13], "var_str": [2, 13], "variabl": [14, 15, 16, 18, 19, 20, 21, 24, 27, 29, 30], "variat": [], "varieti": 9, "variou": [7, 9, 20], "ve": 28, "verb": [2, 14], "veri": [2, 9, 14, 20], "verifi": [21, 22], "verify_string_length": 21, "versatil": 9, "version": [11, 22, 29], "via": 10, "video": [8, 9], "view": [2, 13], "virginia": [2, 10, 13], "visibl": [8, 22], "visit": 8, "visual": [7, 9, 10, 20, 29], "vital": 7, "vowel": 20, "w3school": [2, 14], "wa": [9, 16, 20, 22, 23, 24, 25, 27, 28], "wahoo": 2, "wai": [1, 2, 7, 8, 9, 13, 14, 15, 16, 18, 20, 22, 27, 28, 29], "wait": 27, "walk": 28, "want": [8, 11, 13, 15, 16, 18, 22, 27, 28], "warn": [15, 28], "wd": 20, "we": [1, 2, 7, 9, 10, 11, 13, 14, 15, 16, 18, 19, 20, 22, 24, 25, 27, 28], "web": [8, 9, 10], "week": [1, 2, 7, 16], "weight": 28, "weird": [], "welcom": [7, 8], "well": [7, 9, 20, 22, 23, 24, 30], "went": 27, "were": [2, 19, 20, 22], "what": [1, 2, 7, 11, 14, 16, 18, 19, 20, 22, 25, 27], "whatev": 28, "when": [2, 8, 11, 13, 14, 15, 16, 18, 19, 20, 23, 24, 25, 27, 28, 29], "where": [2, 7, 9, 13, 16, 20, 22, 25, 27, 28], "wherea": [15, 20, 22], "whether": [8, 15, 18, 22, 23, 24, 27, 28], "which": [1, 7, 8, 9, 10, 11, 13, 15, 16, 18, 20, 22, 24, 27, 28, 29], "while": [2, 7, 9, 13, 19, 20, 22, 28], "white": [8, 13], "whitespac": 15, "who": 7, "whole": [8, 15, 28], "whose": [22, 29], "why": [9, 18, 20, 22, 23, 24, 27], "wide": [9, 10], "widget": 8, "wiki": 29, "wikipedia": 29, "wil": 20, "wild": 28, "wish": 22, "within": [1, 7, 10, 13, 15, 19, 20, 22, 27, 28, 29], "without": [8, 11, 13, 16, 20, 28], "won": 22, "wonder": 11, "woodstock": 16, "woof": 28, "word": [13, 14, 18, 20, 22, 28], "work": [7, 9, 10, 15, 16, 18, 19, 20, 21, 22, 23, 24, 27, 28, 30], "workflow": 8, "workhors": 29, "world": [2, 11], "worri": [22, 28], "would": [1, 8, 9, 13, 15, 16, 22, 27], "wow": 28, "wp": 8, "wrap": 25, "write": [7, 8, 9, 10, 11, 13, 17, 19, 20, 21, 22, 25, 27, 28, 30], "writen": 11, "written": [9, 22, 23, 24], "wrong": [7, 27], "www": [8, 9, 16, 17, 29], "x": [1, 2, 8, 9, 13, 14, 16, 18, 21, 22, 25, 27, 29], "x1": 22, "xlabel": 9, "xx": [18, 19], "y": [1, 2, 8, 9, 13, 14, 15, 16, 22], "y1": 22, "ye": [16, 28], "year": [27, 28], "yield": [2, 11, 13, 16, 20], "ylabel": 9, "ym": 15, "york": 9, "you": [1, 2, 8, 9, 10, 11, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 27, 28, 29], "your": [1, 2, 7, 8, 9, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 25, 27, 28], "yourself": [7, 27, 28], "z": [1, 2, 8, 13, 14, 16, 18, 19, 22, 25], "zero": [15, 16, 27, 29], "zero_arrai": 29, "zero_int_arrai": 29, "zerodivisionerror": 27, "zip": 22, "\u00f1g": 15, "\u00f1igo": 15}, "titles": ["Getting started", "Metadata", "Metadata", "<no title>", "<no title>", "<no title>", "Practice", "Introduction", "Jupyter Notebooks", "Brief introduction to programming languages", "Tech Stack", "Your first Python program!", "Python (Beginner)", "Variables and data types", "Operators and Expressions", "Strings", "Data Structures", "Data Structures Exercises", "Control Structures", "<no title>", "Iterables and Iterators", "<no title>", "Functions", "Instructions", "Instructions", "Installing & Importing Packages", "Python (Intermediate)", "Errors and Exceptions", "Introduction to object-oriented programming (OOP)", "PREREQUISITES", "Welcome to DS-1002"], "titleterms": {"1": [], "1002": 30, "2": [], "3": [], "Will": 7, "ad": [16, 27], "alias": 25, "ar": [7, 25], "arg": [], "argument": [1, 22], "arithmet": 14, "arrai": [25, 29], "attribut": 28, "basic": [8, 25, 29], "beginn": 12, "best": 27, "block": 27, "break": 18, "brief": 9, "built": [18, 22], "calcul": 29, "call": 22, "can": 18, "canva": 10, "cell": 8, "check": 15, "class": 28, "code": 8, "command": 8, "comparison": [2, 14], "compil": 9, "compon": 8, "comprehens": 20, "concept": 29, "condit": 18, "construct": 16, "continu": 18, "control": 18, "convert": [2, 13], "cours": 7, "creat": 22, "current": 18, "d": 30, "data": [2, 9, 13, 16, 17, 25, 29], "default": 22, "defin": 28, "design": [], "dictionari": [16, 20], "docstr": 22, "document": 8, "drop": 29, "edit": 8, "editor": 8, "elif": 18, "els": [18, 27], "entri": 16, "enumer": 18, "error": 27, "exampl": 20, "except": 27, "excersis": [27, 28], "exercis": [13, 14, 15, 16, 17, 18, 20, 22], "exit": 18, "express": [2, 14], "final": 27, "first": 11, "format": 15, "function": [18, 22, 25], "gener": 20, "get": 0, "global": 22, "good": 22, "guidelin": 22, "handl": 27, "how": 7, "i": [13, 15, 28], "id": 2, "ident": 14, "ii": [], "iii": [], "imag": 25, "immut": 15, "import": 25, "indent": 18, "index": [1, 15, 16], "inherit": 28, "initi": 28, "insert": 29, "instal": 25, "instruct": [23, 24], "intermedi": 26, "interpret": 9, "introduciton": [], "introduct": [7, 8, 9, 18, 20, 22, 27, 28], "iter": [18, 20], "iv": [], "jupyt": 8, "jupyterlab": 10, "kernel": 8, "keyboard": 8, "keyword": 13, "know": 7, "languag": 9, "learn": 7, "like": [], "liner": 18, "list": [16, 20], "local": 22, "logic": [2, 14], "loop": [18, 20], "manipul": 29, "membership": 15, "menu": 8, "metadata": [1, 2], "method": [15, 16, 28], "modal": 8, "mode": 8, "more": 8, "mous": 8, "multipl": 18, "mutabl": 16, "name": [2, 13], "navig": 8, "nest": 20, "new": 16, "note": 16, "notebook": 8, "numer": [2, 25], "numpi": 25, "object": [2, 7, 28, 29], "ondemand": 10, "one": 18, "oop": 28, "open": 10, "oper": [2, 14, 15, 16], "orient": 28, "pack": 22, "packag": 25, "paradigm": 9, "paramet": 22, "pass": 22, "practic": [6, 13, 14, 15, 16, 18, 20, 22, 27, 28], "prerequisit": 29, "process": 18, "program": [9, 11, 28], "python": [11, 12, 26], "rais": 27, "rang": [16, 20], "reserv": 13, "resourc": 8, "restart": 8, "retriev": 16, "return": 22, "run": 8, "runtim": 27, "scienc": 9, "scope": 22, "self": 28, "set": [16, 20], "slice": [15, 16, 29], "some": [16, 18, 27], "sourc": 29, "stack": 10, "start": 0, "stop": 18, "string": [2, 15, 20], "structur": [16, 17, 18], "subset": 15, "succe": 7, "summari": 16, "tech": 10, "theori": 20, "thi": 7, "tip": 22, "try": 27, "tupl": [16, 20], "type": [2, 13, 29], "unari": [2, 14], "unpack": 22, "us": [16, 18], "v": 9, "valu": [16, 22, 29], "variabl": [1, 2, 13, 22], "versu": 22, "vi": [], "vii": [], "viii": [], "welcom": 30, "what": [13, 15, 28], "when": 22, "while": 18, "write": 18, "you": 7, "your": 11, "zip": 18}}) \ No newline at end of file