{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "250d150f",
   "metadata": {},
   "source": [
    "# Introduction to Python Programming\n",
    "\n",
    "**Level 5 workshop notebook | Applied Computing**\n",
    "\n",
    "You already know how to plan a solution. You can draw a flowchart, write pseudocode and snap together blocks in EduBlocks. That is the hard part of programming, and it is the part people often skip.\n",
    "\n",
    "This notebook is about the next step: **typing the program yourself**. The logic stays the same. What changes is the spelling. By the end you will be able to take a flowchart or a piece of pseudocode and turn it into a working Python program.\n",
    "\n",
    "### What you will be able to do\n",
    "\n",
    "1. Translate pseudocode and flowcharts into Python statements.\n",
    "2. Use variables, data types, input and output.\n",
    "3. Write programs that make decisions with `if`, `elif` and `else`.\n",
    "4. Repeat actions with `while` and `for` loops.\n",
    "5. Store and process collections of values using lists.\n",
    "6. Break a program into reusable functions.\n",
    "7. Read an error message and fix the bug behind it.\n",
    "\n",
    "### How to use this notebook\n",
    "\n",
    "* Click on a code cell and press **Shift + Enter** to run it. Run the cells in order, from the top.\n",
    "* Change the examples and run them again. Breaking things on purpose is a very good way to learn.\n",
    "* Each section ends with one or more **Exercises**. Plan on paper first (a quick flowchart or pseudocode), then write the Python.\n",
    "* Some exercises have a **check cell** that tells you PASS or FAIL. A FAIL before you have written your answer is normal.\n",
    "* Model answers are in the **Appendix** at the end. Please try the exercise properly before you peek.\n",
    "\n",
    "### Contents\n",
    "\n",
    "| Section | Topic |\n",
    "|---|---|\n",
    "| 1 | From plan to program |\n",
    "| 2 | Your first program: output |\n",
    "| 3 | Variables and data types |\n",
    "| 4 | Input and type conversion |\n",
    "| 5 | Operators |\n",
    "| 6 | Selection: making decisions |\n",
    "| 7 | Iteration: repeating things |\n",
    "| 8 | Lists |\n",
    "| 9 | Functions |\n",
    "| 10 | Debugging |\n",
    "| 11 | Mini project: number guessing game |\n",
    "| 12 | Summary and cheat sheet |\n",
    "| Appendix | Model answers |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3730abaa",
   "metadata": {},
   "source": [
    "### Setup: run this cell first\n",
    "\n",
    "This small helper is used by the check cells later on. You do not need to understand it yet. It uses a *function* (`def`), which we meet properly in Section 9."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "86191bd8",
   "metadata": {},
   "outputs": [],
   "source": [
    "def check(description, actual, expected):\n",
    "    # Compares your answer with the expected answer and prints PASS or FAIL.\n",
    "    if actual == expected:\n",
    "        print(\"PASS:\", description)\n",
    "    else:\n",
    "        print(\"FAIL:\", description, \"| expected\", repr(expected), \"but got\", repr(actual))\n",
    "\n",
    "print(\"Setup complete. You are ready to go.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6720cc36",
   "metadata": {},
   "source": [
    "---\n",
    "## 1. From plan to program\n",
    "\n",
    "Every program, however large, does three things: it takes **input**, **processes** it, and produces **output**. You have drawn this many times in flowcharts. Python gives us a short command for each part.\n",
    "\n",
    "![Input, process, output diagram](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxsAAAD0CAYAAADzJDsDAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAQ6wAAEOsBUJTofAAAU/lJREFUeJzt3XVYVFkfB/Dv0N3dgiACCnbn2t3dnavrqquua6+7xuqrrh3Yid21oq6d6FoooiAG3c3M+8fIyDCkekHh+3mefVbu3Dgz95743XvOuSKJRCIBERERERHRV6ZU3AkgIiIiIqKSicEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJgsEGEREREREJQqW4EyCEhMQkBAQGF3cyiL4KpzK20NbSLO5kfPOY76mkYd7PH/M9lTQlMd+XyGAjIDAYg8ZOL+5kEH0Vm1bMQ0V3l+JOxjeP+Z5KGub9/DHfU0lTEvM9u1EREREREZEgSuSTjaxGju4OewfL4k4GUaG8fvUOq1fuKe5kfLeY7+l7xbz/+Zjv6XtV0vN9iQ827B0s4epapriTQURFiPmeqPRhvif6NrEbFRERERERCYLBBhERERERCYLBBhERERERCYLBBhERERERCYLBBhERERERCYLBBhERERERCYLBBhERERERCYLBBhER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Dvj91zGyaWULer7yoqqqAhsrc/gcOYvwiGhoa2uiqpebbCYxIP9zRSSkru2aIORdKOYv3YDEpOR856jP6nPyiKaGBuZMHYUV63dh3pL1sLOxxC8/DsSPUxfI1jEy0MeUHwdiw/aDmLVgNVzK2mPGpOEYPmGu3L5GDeqGNd4+mDZ3BVLT0rD577lfVLYRfe8M9fWgq6ON7fuOIyo6FgZ6umhQpwoG9moPQNq+mPXLSHjvPIRte48hKSkFVham6NGpRZ77LUi96+lRDr9PH4Nte4/j7MUbUFZSgrWlGerXrlKo75D8cVKHwnRXLqjeXVrB0EAPR076Yse+E9DS0oCjvQ3atWz41Y9FX5dIIpFIijsRJYlEIsHgcbPQoHZV9O/RtriT89n6j/4Nfbq2RtOGNYv82Gd9r2Pn/pPYuGwmB34RERF9Jx489sesBWuwbfXvBX7RH5V8fLLxFfkHvMb12w8QGhaJFj98v91oIqNjkJaejoZ1FQeTFYUn/i/RoVVDBhpERETfkSf+gWjxQx0GGiSHTza+ohbdpC+6GtCzHVo3rVfcySEiIiIiKlYMNoiIiIiISBDsp0JERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIJgsEFERERERIL4P0yv2Dvxk+gLAAAAAElFTkSuQmCC)\n",
    "\n",
    "*Figure 1. Input, process, output, and the Python tools for each stage.*"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6653b987",
   "metadata": {},
   "source": [
    "### The translation table\n",
    "\n",
    "Keep this table close. Almost everything in this notebook is a row from it.\n",
    "\n",
    "| Idea | Flowchart symbol | Pseudocode | EduBlocks | Python |\n",
    "|---|---|---|---|---|\n",
    "| Show output | Parallelogram | `OUTPUT \"Hi\"` | print block | `print(\"Hi\")` |\n",
    "| Get input | Parallelogram | `INPUT name` | input block | `name = input(\"Name: \")` |\n",
    "| Store a value | Rectangle | `SET total TO 0` | set variable block | `total = 0` |\n",
    "| Decision | Diamond | `IF ... THEN ... ELSE ... ENDIF` | if / else block | `if ...:` and `else:` |\n",
    "| Repeat a set number of times | Diamond + loop-back arrow | `FOR i FROM 1 TO 5` | for-in-range block | `for i in range(1, 6):` |\n",
    "| Repeat while something is true | Diamond + loop-back arrow | `WHILE ... ENDWHILE` | while block | `while ...:` |\n",
    "| Reusable chunk of code | Sub-process | `FUNCTION name(...)` | define function block | `def name(...):` |\n",
    "\n",
    "### Two things that are different in Python\n",
    "\n",
    "**1. There is no `ENDIF` or `ENDWHILE`.** Python uses **indentation** (spaces at the start of a line) to show which lines belong inside an `if`, a loop or a function. In EduBlocks, the blocks physically sit inside each other. Indentation is the text version of that.\n",
    "\n",
    "**2. Lines that open a new block end with a colon `:`.** If you forget the colon, Python will complain. You will see this error at some point today. Everyone does.\n",
    "\n",
    "> **Key idea.** Python is not asking you to think differently. It is asking you to write down what you already planned, with very exact spelling."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8165e80b",
   "metadata": {},
   "source": [
    "---\n",
    "## 2. Your first program: output\n",
    "\n",
    "The `print()` function displays something on the screen. Whatever you put between the brackets is what gets shown."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a9ab9bea",
   "metadata": {},
   "outputs": [],
   "source": [
    "print(\"Hello, world!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "07b906fd",
   "metadata": {},
   "source": [
    "Text in Python is called a **string**, and it must be inside quotation marks. Single quotes `'like this'` and double quotes `\"like this\"` both work. Just use the same kind at both ends.\n",
    "\n",
    "You can print more than one thing by separating them with commas. Python puts a space between them for you."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1af554a5",
   "metadata": {},
   "outputs": [],
   "source": [
    "print(\"My name is\", \"Sam\")\n",
    "print(\"2 + 3 =\", 2 + 3)\n",
    "print()                      # an empty print gives a blank line\n",
    "print(\"Line one\\nLine two\")  # \\n starts a new line inside a string"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ce388a06",
   "metadata": {},
   "source": [
    "### Comments\n",
    "\n",
    "Anything after a `#` is a **comment**. Python ignores it, but people reading your code (including future you) will thank you. Comments are the Python version of the notes you write beside a flowchart."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "627808e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# This whole line is a comment\n",
    "print(\"Comments are ignored by Python\")   # so is this part"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71d4f573",
   "metadata": {},
   "source": [
    "### Exercise 1: About me\n",
    "\n",
    "Write a program that prints three separate lines:\n",
    "\n",
    "1. Your name\n",
    "2. The course you are studying\n",
    "3. One thing you enjoy outside of university\n",
    "\n",
    "Then add a comment at the top explaining what the program does."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0ffdae02",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exercise 1: write your code below"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e816054d",
   "metadata": {},
   "source": [
    "---\n",
    "## 3. Variables and data types\n",
    "\n",
    "A **variable** is a named box that holds a value. In your flowcharts you wrote things like `total = 0` inside a rectangle. In Python it looks almost exactly the same.\n",
    "\n",
    "![Variables as labelled boxes](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqgAAADiCAYAAACC5DV/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAQ6wAAEOsBUJTofAAAN9pJREFUeJzt3XlcFOUfB/DP7nLucoOiAor3gQp4Iyp4m2lqmgea2q/MDrOstMwz8ygzNe2yzCuPvLK8D1AoFdIUb/NCBUUF5F7u3fn9sTKyAgYIzACf9+vFy3Xm2dnv7j7MfvaZZwaFIAgCiIiIiIhkQil1AUREREREeTGgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhEREZGsMKASERERkawwoBIRERGRrDCgEhFRqVu3bh1MTExgYmKCGzduSF0OlZJXX30VJiYmcHd3l7oUquQYUImIqqjZs2dDoVBAoVAgJyenVLet1+uh0+mg0+kgCMIzbSu3xunTp5dSdVRSue9pafeXiqQsf2/oMROpCyAiIipNp0+fxs6dOwEA7733Huzs7KQtiMqNXq/HnDlzAAD+/v7w9/eXtqBSsnjxYiQnJ8PLywsDBw6UupxywYBKRESlbuzYsRg7dqwkj3369Gl8+umnYh0MqKVnzZo1WLNmjdRlFEqv14vvPYBKFVDv3r2LMWPGVJmAykP8RERERCQrDKjFlHfuSVhYGFq3bg2NRoOOHTvi8uXLYruQkBCMGjUKDRo0gFqthlqtRosWLfD5558bzVlRKBRwdXXF7NmzYWVlhb59+2L//v1wc3NDjRo1sGrVKqPHP3XqFF544QU4ODjA3NwcTZs2xfz585GdnV1urwHJy/379zF9+nS0atUK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nAFNRERERLLCgEpEREREssKASkRERESywoBKRERERLLCgEpEREREssKASkRERESywoBKRERERLLCgEpEREREssKASkRERESywoBKRERERLLCgEpEREREssKASkRERESywoBKRERERLLCgEpEREREssKASkRERESywoBKRERERLLCgEpEREREssKASkRERESywoAqgaRUHRZvisPFiAypS6FKaOi0SAydFvlM2wg9n4bFm+JKqSKqDLYfSULn8RGoO+gKag+4gtDzabhyOxO1B1wRf97/+l651RP1IBuLN8Uh6kF2uT0mSWvxpjjUHnCl3B7Pc9R1sW93HHej3B6XDEykLqAqStbqsfTXh3CrbgqPehZSl0OVzNzxzs+8jdALaVj660O8P8KpFCqiii4uMQdTvrmPfp1ssGhiDZiaKNDQzQymKgV+X1gbADBuwd1yrelOTDaW/voQPs3VcHM2LdfHpqrhl9muyNEJWLb5Ia5GZUpdTpXDgEpUyTSqbS51CVTJ3LyXhewcYGh3G7T3UButa9XYEgBgbqqQojSiMtOygWEAycFWBURJXEwVxIBayoJPa7FkUxyuRmZCqVSgnosZ3h3miB5trbA1KAkfLLsvtv1g2X3x/0O62WDxuzWNttVx3A10aK5Gz3ZW+HK94VCWs6MJlr9fE96PPhSIACBHJ6Dei1fF/3dobokt82obtcntTw3dzLBqVyLSM/Xo1lqDBW/VgMbSMNtn6LRIhF1IF++T93Da5rlu8GlhHE6oclu8KQ5Lf30o/n/EjDvi7eL2h+jYbMxZFYOjZ9OQmS2gZQMLTB1dDW2aPt6Xnb2Wju+2x+PM1Qw8TNLBwVaF53ysMHlkNViplQXWNGz64+Tw3nBHjvpXAYEnUzHn5xjci8uBVyMLLHjLGQ1cDV/M9XoB326Lx6+HknA/Phs1HE0R0MsWbw12gELx+EtUUfojSYsBtRRFPsjCa/Puoou3Gj985AIBQPjVdETeN8yR6tZGg98X1kZMfA5e/zwaE4c6olsbDQDAwUZV4DYv38zE3xfTMXGoI2o5mSD8agbSMvXl9ZSogjDJc6h1+g8PCm0XfEoLbboei96pgYs3M/DFL3Go62KGScMNH+pzxzsjNV2PXw8m4dfAJHGbANDQzaxsnwTJzoietvBvpcGFGxmYviIGc8dXR/P6hlGl4vSHjCw9RsyM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)\n",
    "\n",
    "*Figure 2. Four variables, each holding a value of a different type.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "eb3d5876",
   "metadata": {},
   "outputs": [],
   "source": [
    "name = \"Aisha\"\n",
    "age = 20\n",
    "height = 1.68\n",
    "is_student = True\n",
    "\n",
    "print(name, age, height, is_student)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "31f21073",
   "metadata": {},
   "source": [
    "The `=` sign here does **not** mean \"equals\" like in maths. It means **\"store the value on the right into the name on the left\"**. You can think of it as an arrow pointing left.\n",
    "\n",
    "### The four basic data types\n",
    "\n",
    "| Type | Python name | What it holds | Examples |\n",
    "|---|---|---|---|\n",
    "| Whole number | `int` | Integers | `7`, `-3`, `0` |\n",
    "| Decimal number | `float` | Numbers with a decimal point | `3.14`, `-0.5`, `2.0` |\n",
    "| Text | `str` | Characters inside quotes | `\"Hello\"`, `'A'`, `\"42\"` |\n",
    "| True or false | `bool` | Only `True` or `False` | `True`, `False` |\n",
    "\n",
    "Python works out the type for you. You can ask it using `type()`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bc737ea7",
   "metadata": {},
   "outputs": [],
   "source": [
    "print(type(age))\n",
    "print(type(height))\n",
    "print(type(name))\n",
    "print(type(is_student))\n",
    "\n",
    "# A number inside quotes is text, not a number!\n",
    "print(type(\"42\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "944263c7",
   "metadata": {},
   "source": [
    "### Naming variables\n",
    "\n",
    "* Use letters, digits and underscores only. No spaces.\n",
    "* A name cannot start with a digit (`2nd_place` is not allowed, `second_place` is).\n",
    "* Names are **case sensitive**: `Total` and `total` are different variables.\n",
    "* Use meaningful names in `snake_case`: `total_price` is much better than `tp` or `x`.\n",
    "\n",
    "### Putting variables inside text with f-strings\n",
    "\n",
    "Put an `f` before the opening quote and write variable names in curly brackets. Python swaps in their values. This is far easier than joining strings by hand."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "13f46fda",
   "metadata": {},
   "outputs": [],
   "source": [
    "name = \"Aisha\"\n",
    "age = 20\n",
    "print(f\"{name} is {age} years old.\")\n",
    "print(f\"Next year {name} will be {age + 1}.\")   # you can calculate inside the brackets too"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0465baf2",
   "metadata": {},
   "source": [
    "### Exercise 2: Rectangle\n",
    "\n",
    "A rectangle is 8 units wide and 5 units high. Store these in variables called `width` and `height`. Then calculate:\n",
    "\n",
    "* `area` (width times height)\n",
    "* `perimeter` (the distance around the outside)\n",
    "\n",
    "Finally, use an f-string to print a sentence such as:\n",
    "`A 8 by 5 rectangle has an area of 40 and a perimeter of 26.`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "398c777c",
   "metadata": {},
   "outputs": [],
   "source": [
    "width = 8\n",
    "height = 5\n",
    "\n",
    "# Calculate area and perimeter below\n",
    "area = None\n",
    "perimeter = None\n",
    "\n",
    "# Print your sentence here"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "eee2eb67",
   "metadata": {
    "tags": [
     "check"
    ]
   },
   "outputs": [],
   "source": [
    "check(\"area\", area, 40)\n",
    "check(\"perimeter\", perimeter, 26)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "af66c3eb",
   "metadata": {},
   "source": [
    "---\n",
    "## 4. Input and type conversion\n",
    "\n",
    "The `input()` function pauses the program, shows a message (the *prompt*), and waits for the user to type something and press Enter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d3f8d001",
   "metadata": {},
   "outputs": [],
   "source": [
    "name = input(\"What is your name? \")\n",
    "print(f\"Nice to meet you, {name}!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "81187af1",
   "metadata": {},
   "source": [
    "### The big catch: input is always text\n",
    "\n",
    "Whatever the user types, `input()` gives it back as a **string**. Even if they type `5`, Python receives the text `\"5\"`. Watch what happens if we try to do maths with it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d40652cc",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = \"5\"\n",
    "b = \"3\"\n",
    "print(a + b)       # joins the text together instead of adding"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e7206107",
   "metadata": {},
   "source": [
    "To do arithmetic you must **convert** the text to a number first.\n",
    "\n",
    "| Function | Converts to | Example | Result |\n",
    "|---|---|---|---|\n",
    "| `int()` | whole number | `int(\"5\")` | `5` |\n",
    "| `float()` | decimal number | `float(\"2.5\")` | `2.5` |\n",
    "| `str()` | text | `str(42)` | `\"42\"` |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8ca91181",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = int(\"5\")\n",
    "b = int(\"3\")\n",
    "print(a + b)\n",
    "\n",
    "# The usual pattern: convert straight away, as the user types\n",
    "age = int(input(\"How old are you? \"))\n",
    "print(f\"In ten years you will be {age + 10}.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6e607740",
   "metadata": {},
   "source": [
    "> **If you see `ValueError`** it usually means the user typed something that cannot be converted, such as `int(\"hello\")`. For now, just type sensible values. We will look at errors properly in Section 10.\n",
    "\n",
    "### Exercise 3: Sum and average\n",
    "\n",
    "Ask the user for two numbers (use `float` so decimals work). Print their **sum** and their **average**.\n",
    "\n",
    "Example run:\n",
    "```\n",
    "Enter the first number: 7\n",
    "Enter the second number: 4\n",
    "Sum: 11.0\n",
    "Average: 5.5\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0342987c",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exercise 3: write your code below"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "495d62b0",
   "metadata": {},
   "source": [
    "---\n",
    "## 5. Operators\n",
    "\n",
    "### Arithmetic operators\n",
    "\n",
    "| Operator | Meaning | Example | Result |\n",
    "|---|---|---|---|\n",
    "| `+` | Add | `7 + 2` | `9` |\n",
    "| `-` | Subtract | `7 - 2` | `5` |\n",
    "| `*` | Multiply | `7 * 2` | `14` |\n",
    "| `/` | Divide (always gives a decimal) | `7 / 2` | `3.5` |\n",
    "| `//` | Whole-number division | `7 // 2` | `3` |\n",
    "| `%` | Remainder (called *modulus*) | `7 % 2` | `1` |\n",
    "| `**` | Power | `7 ** 2` | `49` |\n",
    "\n",
    "`//` and `%` work as a pair. Think of sharing 7 sweets between 2 people: each gets `7 // 2 = 3`, and `7 % 2 = 1` sweet is left over.\n",
    "\n",
    "**Predict first, then run.** Before you run the next cell, write down what you think each line will print."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "770a214b",
   "metadata": {},
   "outputs": [],
   "source": [
    "print(10 / 4)\n",
    "print(10 // 4)\n",
    "print(10 % 4)\n",
    "print(2 ** 5)\n",
    "print(2 + 3 * 4)       # which happens first?\n",
    "print((2 + 3) * 4)\n",
    "print(17 % 5)\n",
    "print(20 % 2)          # what does a result of 0 tell you?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "58fc6863",
   "metadata": {},
   "source": [
    "Brackets and the usual order of operations apply: brackets first, then `**`, then `*` `/` `//` `%`, then `+` `-`. When in doubt, add brackets. They make your intention clear.\n",
    "\n",
    "### Shortcuts for updating a variable\n",
    "\n",
    "Updating a variable based on its old value is so common that Python has shorthand for it. This is the `total = total + n` rectangle from your flowcharts."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1f22433f",
   "metadata": {},
   "outputs": [],
   "source": [
    "score = 10\n",
    "score = score + 5     # long way\n",
    "print(score)\n",
    "\n",
    "score += 5            # short way: same thing\n",
    "print(score)\n",
    "\n",
    "score -= 3\n",
    "score *= 2\n",
    "print(score)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "64ff6aa3",
   "metadata": {},
   "source": [
    "### Comparison operators\n",
    "\n",
    "These compare two values and give back a `bool` (`True` or `False`). They are what goes inside the diamond in a flowchart.\n",
    "\n",
    "| Operator | Meaning | Example | Result |\n",
    "|---|---|---|---|\n",
    "| `==` | Equal to | `5 == 5` | `True` |\n",
    "| `!=` | Not equal to | `5 != 3` | `True` |\n",
    "| `<` | Less than | `3 < 2` | `False` |\n",
    "| `>` | Greater than | `3 > 2` | `True` |\n",
    "| `<=` | Less than or equal | `4 <= 4` | `True` |\n",
    "| `>=` | Greater than or equal | `4 >= 5` | `False` |\n",
    "\n",
    "> **Watch out.** A single `=` stores a value. A double `==` asks a question. Mixing them up is one of the most common beginner mistakes.\n",
    "\n",
    "### Logical operators\n",
    "\n",
    "Combine conditions with `and`, `or` and `not`.\n",
    "\n",
    "| Expression | True when... |\n",
    "|---|---|\n",
    "| `a and b` | both `a` and `b` are true |\n",
    "| `a or b` | at least one of them is true |\n",
    "| `not a` | `a` is false |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "973d3d0c",
   "metadata": {},
   "outputs": [],
   "source": [
    "age = 20\n",
    "has_ticket = True\n",
    "\n",
    "print(age >= 18)\n",
    "print(age >= 18 and has_ticket)\n",
    "print(age < 18 or has_ticket)\n",
    "print(not has_ticket)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f194f823",
   "metadata": {},
   "source": [
    "### Exercise 4: Time converter\n",
    "\n",
    "A video lasts 3725 seconds. Work out how many **hours**, **minutes** and **seconds** that is, using only `//` and `%`.\n",
    "\n",
    "Hint: first find the whole hours. The remainder is what is left over, so work out the minutes from that. Print the result as `1 hours, 2 minutes, 5 seconds`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d80f69af",
   "metadata": {},
   "outputs": [],
   "source": [
    "total_seconds = 3725\n",
    "\n",
    "# Calculate these three values below\n",
    "hours = None\n",
    "minutes = None\n",
    "seconds = None\n",
    "\n",
    "# Print your answer here"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "aef154f0",
   "metadata": {
    "tags": [
     "check"
    ]
   },
   "outputs": [],
   "source": [
    "check(\"hours\", hours, 1)\n",
    "check(\"minutes\", minutes, 2)\n",
    "check(\"seconds\", seconds, 5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c228810a",
   "metadata": {},
   "source": [
    "---\n",
    "## 6. Selection: making decisions\n",
    "\n",
    "A decision is a diamond in a flowchart: a question with a Yes branch and a No branch. In Python we use `if`.\n",
    "\n",
    "![Flowchart: age check](data:image/png;base64,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37SjT9COC8dLTk7W6VPpbUWs9AC5Q+gBciEoMEARYemHtHZt32rsMDCFPTt22C9Zr1CWe5wBuUHoAXLBYrGo1a0NJEk7tmxRQkKCwRMhv9uwdrUkKTDAT3VrVTN4GsA9EXqAXGrTvJGk9MMO2zdvMnga5GfJycnaummjJKl5k3ry8uIaFCA3CD1ALtWoWkHhoSGSpFXLlho7DPK1bZs2Kv7yZUn/hW0AOUfoAXLJarWqY9v0e0nt2r5N27dsNngi5EdJSUma8tOPkqTw0BDVr13d4IkA90XoAW7Cg/d0U2hI+v2kfh7/LbelQJ6bM32aYv+5amtw/74c2gJuAqEHuAn+/gU18LE+kqRT0dGaNnmiwRMhPzl88KDmzJwuSapTq6ratWpi8ESAeyP0ADepU9tbVat6JUnSvN9nasaUyQZPhPzg8MGDGv3Ga0pJTpaHh4eGDnyIO6sDN4nQA9wki8WiN14erGJFIiVJM6ZO1vQpk0TZOXLr8N9/a/Qbr+nSxYuyWCx6degAlS1d3OixALfHbSiAPBJ96rQee3q4jh5Pvz9SparVdM8DD6lIsWIGTwZ3kZiYqDnTf9PcmTOUkpIii8WiEcOesJ8wD+DmEHqAPBR96rQGPPuaDh9NvzWFh4eH2nToqDYdOnFTUlxXcnKytmzcoKk/TdDp2PSTlj08PPTq0AEEHiAPEXqAPJaQkKhvf/pN30+coeTkFEnph8DKVaioOg0bqna9BioUGmrwlDBaUlKSdu/Yro1r16T38MTH2z9Xt1ZVDR30sMqUYpUQyEuEHsBBDh89ofc+/k6r12/J9LmCfn6KiIpSZFRhRURFKTAoWF5eXvLy8uJk1XzEZrMpLS1NSUlJSoi/rJjoaMWcPKmYkyd15nRspvO+wkND9PTj96tti0b8OwAcgNADONjBw8e1cNkaLVq2VvsOHDJ6HLiYwAA/tWhaX22aN1L92tXk6UkPD+AohB7AiQ4ePq7N23fryNETOnLspA4fO6ljx08qMSnZ6NHgBJERoSpRtLCKFY1SiaJRKl+2lOrWqkLQAZyE0AMYLC0tTUnJKUpMTFISjc75jqenp7y9veTj4y1PDw+jxwFMjdADAABMgXJCAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCoQeAABgCv8HqCgRsf6NwVgAAAAASUVORK5CYII=)\n",
    "\n",
    "*Figure 3. A two-way decision.*\n",
    "\n",
    "| Pseudocode | Python |\n",
    "|---|---|\n",
    "| `INPUT age` | `age = int(input(\"Enter your age: \"))` |\n",
    "| `IF age >= 18 THEN` | `if age >= 18:` |\n",
    "| `    OUTPUT \"Adult\"` | `    print(\"Adult\")` |\n",
    "| `ELSE` | `else:` |\n",
    "| `    OUTPUT \"Minor\"` | `    print(\"Minor\")` |\n",
    "| `ENDIF` | *(nothing, the indentation ends the block)* |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f1e75a87",
   "metadata": {},
   "outputs": [],
   "source": [
    "age = int(input(\"Enter your age: \"))\n",
    "\n",
    "if age >= 18:\n",
    "    print(\"Adult\")\n",
    "else:\n",
    "    print(\"Minor\")\n",
    "\n",
    "print(\"This line is outside the if, so it always runs.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ebb4c36c",
   "metadata": {},
   "source": [
    "Notice the four spaces of indentation before each `print`. Lines indented under `if` only run when the condition is true. The last line is not indented, so it runs every time. Try changing its indentation and see what happens.\n",
    "\n",
    "### More than two outcomes: `elif`\n",
    "\n",
    "When there are several possibilities, chain the decisions together with `elif` (short for \"else if\"). Python checks them from the top, and runs the **first** one that is true.\n",
    "\n",
    "![Flowchart: grade ladder](data:image/png;base64,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)\n",
    "\n",
    "*Figure 4. A chain of decisions. Each \"No\" leads to the next question.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1a482fab",
   "metadata": {},
   "outputs": [],
   "source": [
    "score = int(input(\"Enter your score: \"))\n",
    "\n",
    "if score >= 70:\n",
    "    print(\"Distinction\")\n",
    "elif score >= 40:\n",
    "    print(\"Pass\")\n",
    "else:\n",
    "    print(\"Fail\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "357f75b4",
   "metadata": {},
   "source": [
    "Because Python stops at the first true condition, the order matters. If you tested `score >= 40` first, a score of 85 would print \"Pass\" and never reach the distinction check. Try it and see.\n",
    "\n",
    "### Combining conditions\n",
    "\n",
    "You can use `and`, `or` and `not` inside an `if`, which saves you from nesting diamonds inside diamonds."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9157469e",
   "metadata": {},
   "outputs": [],
   "source": [
    "temperature = 22\n",
    "is_raining = False\n",
    "\n",
    "if temperature > 18 and not is_raining:\n",
    "    print(\"Lovely day for a walk.\")\n",
    "else:\n",
    "    print(\"Maybe stay in.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "546fdcac",
   "metadata": {},
   "source": [
    "### Exercise 5: Cinema tickets\n",
    "\n",
    "Ask for the user's age and print the ticket price using these rules:\n",
    "\n",
    "| Age | Price |\n",
    "|---|---|\n",
    "| Under 5 | £0 |\n",
    "| 5 to 17 | £6 |\n",
    "| 18 to 64 | £10 |\n",
    "| 65 and over | £7 |\n",
    "\n",
    "Draw the flowchart on paper first. How many diamonds do you need?\n",
    "\n",
    "Test with ages 3, 5, 17, 18, 64 and 65. Those boundary values are where bugs like to hide."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bf391307",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exercise 5: write your code below"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b13b6871",
   "metadata": {},
   "source": [
    "### Exercise 6: Theme park ride\n",
    "\n",
    "A ride lets people on if they are at least 120 cm tall **and** either they are 8 or older **or** they are with an adult.\n",
    "\n",
    "Set the three variables below, then write an `if` statement that prints `Allowed` or `Not allowed`. Test these four cases by changing the variables and re-running:\n",
    "\n",
    "| Height | Age | With adult | Expected |\n",
    "|---|---|---|---|\n",
    "| 130 | 10 | False | Allowed |\n",
    "| 130 | 6 | False | Not allowed |\n",
    "| 130 | 6 | True | Allowed |\n",
    "| 110 | 12 | False | Not allowed |\n",
    "\n",
    "Be careful with brackets when mixing `and` with `or`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d066648a",
   "metadata": {},
   "outputs": [],
   "source": [
    "height_cm = 130\n",
    "age = 10\n",
    "with_adult = False\n",
    "\n",
    "# Write your if statement below"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2603bd15",
   "metadata": {},
   "source": [
    "---\n",
    "## 7. Iteration: repeating things\n",
    "\n",
    "Loops are where programs start to become powerful. In a flowchart, a loop is a diamond with an arrow that goes **back up**. Python has two kinds of loop.\n",
    "\n",
    "* `while` repeats **as long as a condition is true**. Use it when you do not know in advance how many times.\n",
    "* `for` repeats **once for each item** in a sequence. Use it when you know how many times, or when you are working through a collection.\n",
    "\n",
    "### 7.1 The `while` loop\n",
    "\n",
    "This program keeps adding up numbers until the user types `0`. It is the classic \"running total until a sentinel value\" pattern.\n",
    "\n",
    "![Flowchart: while loop](data:image/png;base64,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)\n",
    "\n",
    "*Figure 5. A while loop. The arrow on the left is the loop going back to the question.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "246f1a4c",
   "metadata": {},
   "outputs": [],
   "source": [
    "total = 0\n",
    "n = int(input(\"Enter a number (0 to stop): \"))\n",
    "\n",
    "while n != 0:\n",
    "    total = total + n\n",
    "    n = int(input(\"Enter a number (0 to stop): \"))\n",
    "\n",
    "print(f\"The total is {total}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb86120f",
   "metadata": {},
   "source": [
    "Look at how the code follows the flowchart. There is an input **before** the loop, so the condition has something to test the first time. There is another input **at the end of the loop body**, so the condition is tested again with a fresh value.\n",
    "\n",
    "> **Danger: infinite loops.** If nothing inside the loop ever changes the condition, it never stops. If a cell seems stuck (the `[*]` stays beside it), press the **Stop** button in the toolbar, or choose Kernel, then Interrupt.\n",
    "\n",
    "### 7.2 The `for` loop and `range()`\n",
    "\n",
    "A `for` loop does the counting for you. In the flowchart below, the three jobs of a counter (set it up, test it, update it) are all packed into one line of Python.\n",
    "\n",
    "![Flowchart: for loop](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlkAAAIFCAYAAADhtOjLAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAQ6wAAEOsBUJTofAAAPgxJREFUeJzt3Xd8U/X+x/F3uls6GN2DDZY9RCiyZSigslUExb2Vq15x4E+9wr3iQEXFvRBRQVARkT1lD9mK7FUoLYUy2tKR5PdHIWxaoCcn4/V8PHw8kpOTnE8wTd/9nk8+sdjtdrsAAABQqnzMLgAAAMATEbIAAAAMQMgCAAAwACELAADAAIQsAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAxAyAIAADAAIQsAAMAAhCwAAAADELIAAAAMQMgCAAAwACELAADAAIQsAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAxAyAIAADAAIQsAAMAAhCwAAAADELIAAAAMQMgCAAAwACELAADAAIQsAAAAAxCyAAAADOBndgHA5diblq7tO1O1O3Wfdu1J0569adqfkam8vHzl5eXLZrebXSJKkcViUWCAvwIC/FW+XFlVTIhVYkKsKibEqWJinKpUSpCPD38zAnAtFrud30ZwDzt27dXMeYs1a94Sbd620+xy4EJioiuofesUdWjTXHVrVSdwAXAJhCy4vCUr1ur9T8fony3bz3t7RNlyio6NVWRUlAIDg+Tn7ydfX18nVwkj2Wx2FRYWKD8vT4cOHlT6/jRlZmTofG9fMdEVdF//XurW5TrCFgBTEbLgstLSD+idD7/RrPlLzthe/aqr1CSluWom11Z0bKyCgoJMqhBmKigo0IH0dO3YtlUrly7R+jWrVVhY6Li9TnJ1PTvwXtW+qpqJVQLwZoQsuKSpsxZo6PBPdPx4niQpNCxMXbr10DXNr1W58uVNrg6uKCcnR2tWrtDkX35W2t5USUW9XANu66ZH7+sri8VicoUAvA0hCy7n9xnz9fKwkbLb7bJYLGrTvqO633qbQkNDzS4NbqCwsFAzp/yuSRN+VF5eUUjv27OLnnp0AEELgFMRsuBSTg9YZUJD9cSg51StRk2zy4IbOpiZqRGvv6bU3bskEbQAOB9doXAZq9dvPCNgPT34JQIWLlv5ChX07xdfUkJSRUnS9z/9ru8n/G5yVQC8CSELLqHQatXr734hu92u4OBgPT34JVWsXNnssuDmwsLD9e8XX1J8QqIk6ZOvx+lA5iGTqwLgLQhZcAnjJ05zzL7qcWtfAhZKTVh4uAY8+JAkKTsnVyM+GW1yRQC8BSELpjuUdUQffTVWkpRUqZLadOhockXwNNVq1FTLdtdJkqbMXKBVa/82uSIA3oCQBdNNn7NI2dm5kqTb77qXQaIwRK/bbldwcLAk6efJs0yuBoA3IGTBdLPmLZYkJSQlqUZyssnVwFOFhYfr6mYpkqR5i5YrP7/A5IoAeDpCFkx1IPOQVq3bKElq0qy5ydXA0518jWVn52rJijUmVwPA0xGyYKrZfyx1fP/c1SkpJlcDT5dct65CypSRJM2ct6SYvQHgyviZXQC82/q/t0iSomNjHR+z9wZ/zJ6lH0eP0q7t25WTk61y5curenIt3dznFjVr0UqStGr5Mq1esVwDHny41L/o+I/Zs7Rvz27dcuddpfq4rs7Pz0/1GjbS0oULtP7vzWaXA8DDsZIFU+1O3SdJXhWwJoz5Vv/35BNKrFhJg155VcPe/1B33P+gJGnVsqWO/VavWK5RH38om81W6jUsmDNL40Z/U+qP6w7iTrzWUvelq9BqNbkaAJ6MlSyYateeNElSVEysyZU4z9hvvlLLdu016D9DHNsaN0vRjb36GBKoTpefn6+AgABDj+HqomOLXmtWq1VpaRlKTPCe1x4A5yJkwTRHjh7T4SNHJUkxsd7zi+7I4cMqHxl53ttOnhb86qORGvXxh5KkDlc3cNw+d82Gots//ECL5s1V6u5d8vP3V7UaNXXfE/9Snfqn9l21fJmevO9uvTr8XS1d+IcWzJmtwsJCtWx3nab9OlGS1LZBHUlSTHy8xk6ZUfpP1gWd/lrbvTeNkAXAMIQsmCZ1X7rjsjetZNWqW0/TJk1UfGKiWrS9TknnmW7ftWcvZezfr99/nqD3vx4tn7Nmh2Wkp6tP/zsVFROj3NxczZj8mwbefac+/eFHVT3r+x7fG/Y/NW3ZSi/89zXl5+Wrao0aOnzokDauX6//vveBJCnA33tWt6JPe63t2bvfxEoAeDpCFkyTnZ3juBwWFmZiJc711Isv6+V/P6mP3xmuj98ZrvCyZdUkpbk6d+uha65tIakoCETFxEiSatWrLz+/M39UB73yquOy1WpV0xYtdXfPvzX5pwl6/Nnnz9g3uW69M/aXpIhy5eTn73/Gype3CA4Jka+vr6xWq7Jzcs0uB4AHI2TBNHmnDYP0C/A3sRLnSqpcWZ+NHa/1q1dp+eKF+mvtWv0xe5ZmT52iex59XHc+8FCxj7FiyWJ9+9kn2rZ5k44cPuzYHpuQcM6+rdq3L9X6PYGfv7+sVisDSQEYipAF01hP+2RXaY8ocHW+vr5qcHUTNbi6iSTpQHq6Bj3yoEZ98pF63NZXYeERF7zvpr//0nOPPqRrrm2hZ14ZogqRUfLx9dGb/3lJ+fn55+xfITLKsOfhrk5+dVNhIZ8uBGAc7/rNBpcS4H9q9aqwoNDESswXGR2trj16yVpYqD07d1503/kzZ8jXz09D3h6hVte1V+369ZVcp66OHTly/jtYLAZU7N4KToTRAC9aQQXgfIQsmCYw8FSzdX5+nomVOFdmRsZ5t+/asU2SHJ88PDlqIT/vzH+b48dzi1b+TgtPfy5dov379pW4hgD/AOXnHb+kuj2FzWZTQUHRacLTgz4AlDZOF8I0FcqXdVw+lJkpVa9hXjFOdHevbrq6WXM1a9VKcQmJyj52TEsXzNevP45Tu043KCYuXpJUqWo1SdLYb75Wsxat5OPro+Q6ddX02pYa/+1oDfu/wercvYf27Nyhbz79WJHRMSWuoVK1ajoy4bAmjvtBV9Wuo4DAwHM+leipsg4ddFyOrFDWvEIAeDxCFkwTHxslXx8fWW027U9LM7scp7n3sYFaumC+vvrwAx3MzJSvj68SK1XSAwOfVO/+dzj2a966jbrfepsmjv1B33zykex2u+au2aCmLVrqiWdf0LjRozR/1gxVqV5dzw99TaM/+6TENXTt0Ut/rV2jz94boWNHj3jVnKz9+0691iomxplYCQBPZ7Gf/HZewATd+z+uPXv3q2W763RXCT5VB1ypebNmavTnn0qSZv78hcpGeM/4EADORU8WTHVyJSH9EvqJgCuRnlb0WgsPK0PAAmAoQhZMVSmxqP9o184djmZkwEjbtmyRJFU88doDAKMQsmCqa5s1lCQdz83VhrVrzC0GHi/r4EFt+WejJKlFs0YmVwPA0xGyYKprGtVVRHiopKIp5oCRVi5bqpNtqB3apJhcDQBPR8iCqfz8/NS2ZVNJ0pqVK847sRwoLSeDfPWqFVWlUqLJ1QDwdIQsmK5jm+aSpNzcXE3/bZLJ1cBTbVi7RptPnCrscOI1BwBGImTBdE2vrqcGda+SJP0+8WcdyEg3uSJ4moKCAn339ZeSpLIRYbql+/UmVwTAGxCyYDofHx89O/Be+fhYlJ+frx+++VqMb0NpmjH5N8fXDj3+QD+Fh4WaXBEAb0DIgkuoWa2y+nQrWl1YvWKFxn83hqCFUrFs8SL9PO4HSVK92jV00/VtzS0IgNcgZMFlPHT3rap6ohl52m+/ErRwxZYtXqTP3h8hu92usNAyGvzUg0Vfrg0ATsDX6sClZB7M0sNPv6ptO/dIklJattIt/e9UeESEyZXBnRTk52vqpF/164QfHQFr5JsvqvZV1cwuDYAXIWTB5ZwdtELKlFH3W25V2w6dWIVAsdb++ae+H/WVMtL3SxIBC4BpCFlwSYeyjuidj77R7zPmO7ZFRkerSUpzNWnWXJWqVJHFYjGxQriSjPR0rViyWCuWLNbO7dsc2xvWS9YLTz6gqpWZiQXA+QhZcGmr1v6t19/7Qlu27Tpje1R0jGrUqqWY2FhFx8QqJjZOFaKiFBgUJF9fXwKYB7JarSrIz9fBg5lK35em9P1p2p+2Tzu2bj0jWElShXIRGvjQHercoRWvBQCmIWTB5RVarZo6a4Gmz16opSvXyWq1XnR/i8XCaUUPY7PZSvQhiDrJ1dWhTYp6dO2g0NAQJ1QGABdGyIJbOXzkmOYtXK55i5Zr+85Upe5LLzZ0wXPFRFdQpcR4Nb+mgdq3SVF8bLTZJQGAAyELbq3QalVaWoZ2paZpf/oB5eUXKC8/X3abZ7+sj2Zna9T3EyVJN1zXQtWrVjK5IoNZpKDAAPn7+6tCuQglJcQpIT5GQYEBZlcGABfkZ3YBwJXw8/VVYkKsEhNizS7FqdLSDzhCVtuWTdWhLd/FBwCuhsYVAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAzACAfADRQWFmrbzj2ynZj/lXkwy3Fb6r50bdy83XE9MT5GoWWYdg4AZmMYKeAGBjzygjZs3FKifcPDyujn0e8rIjzU4KoAABfD6ULADRw9ll3ifbOzc2Wz2QysBgBQEoQswA307dWlxPt27thK5cqGG1gNAKAkCFmAG+jW+TpFR5Yvdj9fHx/d27+XEyoCABSHkAW4gYAAf93dr0ex+3Xu2EpJXvY9jgDgqghZgJsobjWLVSwAcC2ELMBNFLeaxSoWALgWQhbgRi60msUqFgC4HkIW4EYutJrFKhYAuB5CFuBmunW+ThXKl3Vc97FYWMUCABdEyALcTECAv27pfoPjeqP6tVjFAgAXRMgC3FD/PjcqPCxUfr6+euqRAWaXAwA4D767EC4tOydXW7fvNrsMl2W322WxWMwuwyVVq5KkMiHBZpcBwIv5mV0AcDFbt+/WPY+/aHYZcENfvj9U9evUNLsMAF6M04UAAAAGYCULbuPhR29VpcpxZpcBF7Zzxz59NHKs2WUAgCRCFtxIpcpxSk6uYnYZAACUCKcLAQAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAxAyAIAADAAIQsAAMAAhCwAAAADELIAAAAMQMgCAAAwACELMMHIEaNUt1oHpx7z3be+0P0DnlWLq3uobrUO+mX8NKceHwC8DSELMEGvW7pozPj3nHrM7775RXnH89SmXYpTjwsA3ooviAZMEBsXpdi4KKcec8nqifLx8dGuHan69ecZTj02AHgjVrIAE5hxutDHhx93AHAmVrIAF2az2WSz2Yvdz9fXRxaLxQkVAQBKipAFuLD/e/YtTfxperH7DX39GXXvfb0TKgIAlBQhC3Bhjwy8U33v6FbsfolJsU6oBgBwKQhZgAuLi49WTGzxDfK+vvRbAYCrIWQBLozThQDgvghZgAvjdCEAuC9CFuDCEhJjlZBYOgFq+dI1OnTwsA5kHJQkbVi/SSFlgiVJnTq3LpVjAABOIWQBXmLkiFFasXSt4/r3oyfq+9ETJUnrt840qywA8FiELMAEjw4coEcHDnDqMb/+7m2nHg8AvB0fSQIAADAAIQsAAMAAhCwAAAADELIAAAAMQMgCAAAwACELAADAAIQsAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAxAyAIAADCAn9kFACW1c8c+s0uAi+M1AsCVELLgNj4aOdbsEgAAKDFOFwIAABjAYrfb7WYXAVxIdk6utm7fbXYZLifzUJaeeektSdLDd9+qaxrXM7ki11OtSpLKhASbXQYAL8bpQri0MiHBql+nptlluJy09AOOy5WS4vk3AgAXxOlCAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAxAyAIAADAAIQsAAMAAhCwAAAADELIAAAAMQMgCAAAwACELAADAAIQsAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAzgZ3YBAIqXeTBLa9b/I5vdLknKOnzEcdu6vzZJFovjeo2qFVUpKd7pNQIAzmSx20+8awNwWT3vHKhde/aVaN8Af3/9+v1IRZYva2xRAICL4nQh4AaCAgNKvK/FIgUG+BtYDQCgJAhZgBu487ZuJd63500dFRZaxsBqAAAlQcgC3EDHtteqcsWEYvcLDPDXgEsIZAAA4xCyADfg6+uj++7oVex+PW/qqMgK5ZxQEQCgOIQswE0Ut5rFKhYAuBZCFuAmilvNYhULAFwLIQtwIxdazWIVCwBcDyELcCMXWs1iFQsAXA8hC3AzHdteq8T4GMd1Pz9fVrEAwAURsgA34+vro3633OS43vyahqxiAYALImQBbqhn1w6qXDFBEeGheubxe8wuBwBwHoQswA1t2LhF1askqWqlJP2zebusVpvZJQEAzsIXRANuotBq1dw/lmnM+N+07q/NZ9yWEBejvr266ObO7RQSHGRShQCA0xGyABd3LDtHE3+frR9+mqJ9+zMc24MDAxQSFKjMw0cd20LLhKjHjR10a48bFBsdaUa5AIATCFmAi9qblq4ffpqiib/PVnZOrmN7dLkI3dK+lbq1TlFQgL9mLl+j72fM06ZdqY59fH181KFtc93eu6vqJFc3o3wA8HqELMDFrN2wSd+N/02z/1gqm+3Uj2etykm6vVMbtWtcX35+vmfcx263689/tuqHmfO1YM1fOv3HumG9ZPXrfaNaX9tEvr60YQKAsxCyABdwoX4ri8WiNo3q6raOrdWgehVZLJZiH2tXWobGzpqv3xYuV15+gWM7fVsA4FyELMBEF+u3uqllM93SvqUSL7O36vCxHP0yf7HGz16gjKwjju30bQGAcxCyABOUpN8qLCS4VI5VUFhI3xYAmICQBTjR5fRblRb6tgDAuQhZgMFKs9+qtNC3BQDGI2QBBjGy36q00LcFAMYhZAGlzJn9VqWFvi0AKH2ELKCUrN2wSWN+/E1zFji/36q00LcFAKWHkAVcAVfstyot9G0BwJUhZAGX4dixHP0yZbbGunC/VWmhbwsALg8hC7gE7thvVVro23JNW95+W9veeafoisWi5tOmKaxWLcftcxs3Vn5G0R8CnXbvNqNEwGv5mV0A4A48od/qSvn7+alz86t1Q0rjM/q2rDabps1eqGmzF9K3ZTa7XVvfflsNP/vM7EoAiJAFXJAn91tdCYvFoquTq+vq5Orn9G2tXrdRq9dtpG/LROnTpunIhg0Kr1PH7FIAr8fpQuAs3tRvVVro2zLP6acLLb6+slutiurYUY2+/FLS+U8XFubkaMdHH2n/778rd+dOyWJRmWrVFNezpyrec498/Pj7GygNhCzgBG/utyot9G053+khK653b+0bP16SlDJ5ssLr1z8nZBXm5Gh57946um7deR8vsl07Nfr6a1l8ON0LXCn+XIHXo9+q9NC3Za6IBg1UkJWlAzNnasvw4Wo8atQ5++z6/HNHwKrQpo3qvv22rMePa81DD+nounU6MGeO0iZOVFyPHs4uH/A4hCx4JfqtjEXflnmqP/WUDsycqQOzZ+vwqlXn3J4xe7bjco3nnlNgdLQkqdrAgVp9332SpANz5hCygFJAyIJXod/K+SrGRumZfr30QLfOZ/Rtpe7br7c++EoffzWWvq1SFF6vnqI6dVLG9OnaMnz4ObcXZGY6LgclJJy6nJjouJx/4ICxRQJegpAFr0C/lfkiQkM0oEt73d6pzRl9W8eyczR67K/67sff6NsqJdWffloZM2Yoc948WXzPPNUdEBmpnB07JEnHU1MVUK6c4/Lp+wC4coQseDT6rVwPfVvGC6tdW9E33KD0KVNkt1rPuC3yuuuUtWKFJGnLG2+ozvDhsh0/rm3vvnvGPgCuHCELHod+K/dA35axqj31lNKnTpXO+gB5xXvv1f4pUxxN7vMaNz7j9sh27RR7883OLBXwWIxwgMeg38r9MW/r0p0+wiF5yBBVvOsux21rHn5Y+3/7zXH9nDlZkycrd9cuSVKZ6tWZkwWUMkIW3B79Vp6HeVsAPAEhC26LfivPZ7fbz+jbOv3tir4tAK6OkAW3Qr+V9zq7b+sk+rYAuCpCFtwC/VY4ib4tAO6CkAWXRr8VLoS+LQCujpCFy2K12jR34TIlxMUouUaVUn98d+m3ev3z0XrzyzE6sGiq2aVc1Mk6z9a5VXONfv3li9532sKl+nLCJK3btFXH8/PVtF5tDXniAdWolGRUuZeEvi0AroqQhcvy27S5euX1DyVJLVMa6/47e1/xqoE79lvtTc/Q3vQDalK3ltmlXNTJkDX54+Hy9TkVNsqGh6l6xcSL3FNq2e9BtWt2tdqnNNHhY8c09OOvZbPZtOi7TxUYEGB06ZeEvi0AroSQhcvy5Zif9OEXP5yx7XLDFv1WRY7l5Co7N1cxFcqX+mOfDFlp8ydf8grgwcNHVD4i3HF90pwFunvwUM344j01qlWztEstFfRtAXAFTJxDqVmw5E8tWPKnWjRrpPvv7KO6tS4etjyh3+pKTxdarVbNW75K46bO0u/zF+n1px9V366dSrnKK3N6wJKkLbv2SJLKhYeZUU6J8D2JAFwBIQulbuHSVVq4dNUFw5a79FsZad2mrRo3dZYmzJijjINZalqvlv7z+APq2qbFGfsVFlov8AinWCySr2/J/r3q9+ivA4cOKz4qUj06tNGg+/orODCwxHXPWbpSb301Rvf3vlmVE+JKfD+z8D2JAMzE6cKL2LVnnyZNm6v803o7UGT935u1Zv0/Jdo3KSFWrz7/mCLLl9MLQ991m36rkriUlax9GQc0fvocjZsyS39v26GalSuqd6d26n19O1WMiz1n/1370tS4113FPm5SbLRW/fTNRfcZN3WW0jIyVa9mNVksFs1ZtlKfjpuoaxvV04QRrxV7DElasma9eg98QZ1bN9cnrzwrHx/3DCQX69vq16erkmtUNbE6uIO8vHzNX7xSXTu1NuSDP/AchKyLGPj8a1q4dJXZZXiE+LhovTLoET3w5CuObQ1qVNH/3X2bW/dblTRkvf75aA3/+ntFlS+rnh3aqvf17dTgqhoXvU9+QYE2bNlebA2BAf6qXe3S3+g/GfuLBo/4WBNG/E9trmlc7P6t73hIgQEB+v2Tt+XvAd9td/hYjj4YP0mTFiwzuxS4qYqJcfrpmxFmlwEX5v7vlAZZu2GTI2CVjQjziF8qpSk7J1c5ucdLtK/FInVqd60CAwPk42NxnCJcs3m7Xv58jPp2bKO2jevJr4SnvNxRcFCQ/P18lXs8T0eys3U0O0c2m+2iq0EB/v6qV6NasY99uYt/PTu21eARH2vV35tKFLL+2bFLj93e2+1/Fux2u1Zv3qbvp8/TH2v+MrscuLGDhw6bXQJcnHu/WzrJ20OfVf06rvkpKrOc79OFZwsMDFDvmzvpjltvVmT5spKkn755T2N/mqKJU2YrJ/e4NmzbpRc/Ga3Y8uXUp31LdWvVTKEu3ux+OZ7o30cDunXWL7Pma9zUmer+2LOKj45Ur45FpwvrVD/3FFVpni68GItKltKqJMQrunzpf/LRWQoLrZq1co2+nz5PG3fucWz39fHRdW1S1K931zN6BIEL+XnyTE2aOtfsMuAGCFkodecLVyclxsfo6cfu0gN39dEvk2fph5+naH96ptIOHtL7P07SF79O182tisY2xEdVMOcJGCQiLFQDunfRgO5dtCN1n36cNls/Tput98f8qFpVK6vP9dfp9hs7KbJcWUlSbGQFzfjivWIfNzDA/7LqGT99tiSpUe2rSrT/kh8+v6zjmO1Ido5+mb9EP85eoIzTVh7KlAlWjy7tdWuPzoqLjTKxQribRctoI0HJELJQai4Wrs4WFlpGd9x6s/r26qLZfyzTt+Mm6a9/tionL08/zJyvcbP+UJvG9dS3Y2vVq1bZ7Rrii1M5IU7P3NNPz9zTTyvW/61xU2fpg+/GK6p8WccIhwB//1KbQ9VuwKO6pXN7Va+YKIvFornL/tTn439V+5Qmat2kYYkeI6ZVFz05oK+eu++OUqnJaLv3HyhqcF+wXMfz8x3b42Oj1LdXV93cuZ3KeOCqKQDXQcjCZQk4bdL3pYSrs/n5+alTu2vVsW1zrdnwj8b8+JvmLVwum82uOSvXas7KtapTtaJH9201qVtLTerW0tCBD+rYafPCSlO1ion6Yvwk7c88KJvdpkrxcfr3Pbfr8X59SvwYVqtNNmvxIyXMdHa/1emf66lf5yr169NVbVs0ZVQDAKfg04UXsHbDJt3z+IuSpC/fH0pP1lkyDhzUWx98rYT4aN3e+8ZLDlcXs2fv/jP6tk7y9L4tXL6S9FvVrXXxT3MCJfXxV2P1+egJCi0TormTvja7HLgwVrJwWaIiy+v1V54y5LG9uW8Ll4Z+KwCujJAFl+XtfVu4MPqtALgDQhZcHn1bkOi3AuB+CFlwGxaLRQ3rJqth3eRz+ra8Zd6WN6LfCoC7ImTBLdG35fnotwLg7ghZcGv0bXke+q0AeApCFjwCfVvujX4rAJ6IkAWPQt+We6HfCoAnI2TBY9G35brotwLgDQhZ8Hj0bbkO+q0AeBNCFrwGfVvmoN8KgLciZMHr0LflHPRbAfB2hCx4Nfq2Sh/9VgBQhJAFiL6t0kC/FQCciZAFnIa+rUtDvxUAXBghCzgP+rYujn4rACgeIQsoBn1bp9BvBQAlR8gCSsib+7botwKAS0fIAi6Rt/Rt0W8FAFeGkAVcJk/t26LfCgBKByELKAUn+7YevOsW/fL7LH3/0+9u17dFvxUAlC5CFlCKQkND1P+Wm3Rbry6aPX+pxvz4mzZs3OLSfVv0WwGAMQhZgAH8fH0dfVtrN2zSmPG/ae6CZS7Tt0W/FQAYj5AFGMhisahB3avUoO5VLtG3Rb8VADgPIQtwEjP7tui3AgDnI2QBTubMvi36rQDAPIQswCRG9W3RbwUAroGQBZistPq26LcCANdCyAJcyOX0bdFvBQCuiZAFuKCS9m2VDw/V5IUr6LcCABdEyAJcWHF9W6ej3woAXAshC3ADZ/dtfTnmJ/06ZY4kqX6dmnrqkQH0WwGAi+HPXcDNJMbH6IEBfRzXb+9FQzsAuCJCFgAAgAEIWQAAAAYgZAEAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFeAHr8eNa0KaNpiclaXpSknZ/++2Zt+fm6o8WLRy3p44da1KlAOA5CFmAF/ANClLtYcMki0WStHnYMOUdOOC4fduIEcrdtUuSVL5lSyXceqspdQKAJyFkAV6ifPPmSujbV5JUePiwNr36qiTp2KZN2vHpp5Ikn6Ag1X7tNdNqBABPwncXAl6k5uDBOjBrlvL279e+n39WfO/e2vruu7IXFEiSqj/9tEIqV1bWn39qx4cfKmvlShVkZSmgfHlVaN1a1Z56SsFJSY7HO/rXX9r6zjs6vGqV8g8dkl9IiIISExXRoIGShwyRj7+/WU8VAEzHShbgRfzDw5U8ZIjj+uoHHlDW8uWSpPB69VTp/vuVNmmSlvfsqfRp05R/4IDshYXKS0/X3vHjtaRLF2Vv3SqpqI9rRd++Sp86VXn798uen6+CrCwdXb9ee8aMkS0/35TnCACugpAFeJmYzp0V3bmzJMmanS1Jsvj5qfabb8qWn6+/X3hBdqtVYfXqqcXcueqwdauajBsnS0CACrKytGnoUElS9ubNKjh4UJJUY/BgddiyRW3XrNE1P/2kKo8+KouvrzlPEABcBKcLAS9Ua8gQHVy0SIWHD0uSKj3wgMLr1FHm/PkqyMqSJB1dt04L27Y9576Zf/whSQqMj5fFz0/2wkKl/fqrbMePq0y1agqvW1c1nnvOWU8FAFwWIQvwQoExMQqrVUuHliyRJEWeCFP5mZnF3teWl6fCnBwFRkaq1muvafNrr+nounU6um6dY5+y11yjxqNGyS8szJD6AcAdELIAOARUqOC4nNC3r+q88cY5+9jtdllOjIJIvO02JfTpo2ObNytn+3YdWrJEu778UlnLl2vXqFGq+thjTqsdAFwNPVkAHCKaNJFfRIQkae+ECdr3888qzM5WYU6Oslat0j9Dh+qfV16RJOUfPKh/hgxR1sqVCoiMVFSHDorq1MnxWMdTU814CgDgMljJAuDgFxKiWkOHat3AgbLn52vdE0+cs098796Sik4b7vz0U+08MWPrbJFt2hhaKwC4OkIWgDPEde+u4KQk7fj0U2UtX66CQ4fkFxGh4IQElW/ZUnHdu0uS/CIiVOm++3Ro+XLl7t6twsOH5RMcrLDkZCUNGKDoG24w94kAgMkIWYCXuubHHy94W9mrr1bDTz656P39QkJ01csvl3ZZAOAx6MkCAAAwACELAADAAIQsAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAxAyAIAADAAIQsAAMAAhCwAAAADELIAAAAMQMgCAAAwgJ/ZBQAo3idfj9Pk6fNks9klSVabzXHbsBGf692PRzuu161VXUNfHCg/X1+n1wl4mkNZRzTo5eHatz/Dse1Ydo4kKTsnVzfe9ohje0CAv+7t30tdO7V2ep1wTYQswA2M+2WaDh85et7bsg4flXTqtrT0A3rsvtuVmBDrpOoAz7Vm/UatWvf3eW+z2+1KSz9wxrZfp84hZMGB04WAG7ihfYsS71snuboS4mMMrAbwHk2vrq+I8LAS79+5fUsDq4G7IWQBbmDAbd0V4O9fon0fGNBHFovF4IoA7xASHKQ7br2pRPvGx0apa6c2BlcEd0LIAtxAdFR59bixfbH71UmurmubNjS+IMCL3NL9hhKtZt3Tr6f8/enCwSmELMBNlGQ1i1UsoPSVZDWLVSycDyELcBPFrWaxigUYp7jVLFaxcD6ELMCNXGw1i1UswDgXW81iFQsXQsgC3MiFVrNYxQKMd6HVLFaxcCGELMDNDLit+zlv6KxiAcY732oWq1i4GEIW4Gaio8rrhtNm8STFx7KKBTjJLd1vUGBggOM6q1i4GEIW4Ibu7d/TcfnO225mFQtwkpDgILVvnSJJCgzwZxULF0X8hsfLOnxEC5auMruMUndv/146cvSY/AP89dv0eWaX45ESYqPVqH4ts8twWXa7XZmHDmtPapoOHzmmvPx85RcUmF2W4a5pVFc+PhZVrZyoaXMWml2O4fx8fRXg76/g4EDFxUQpIS6G1bsS4l8JHs1qtemFoSO0bOU6s0sxzI8Tp5ldgkcKDgrUNx+9ZnYZLiXzYJbm/LFMK1av167UNO1JTVNO7nGzy4KT+fhYFBcTpcT4WNWsVkntWjVT3VrV5ePDybGzEbLg0T7+eqxHBywY56VBD6tKpUSzyzDdsWM5mjprgWbMW6xVa/+SzWY3uySYzGazK3VfulL3pWvpyrUaPW6SYqIqqH2bFHXp0ErJNauaXaLLIGTBY81buEJfjflZklS3ZoyGv3CjfH3oXcL5jRy9WD/P2CBJ6turizq2vdbkisxlt9s1ecZ8vffJtzp46PAZt8XGxyuxYiVFx8YqJjZO0TGxCo+IkH9AgPz8/OgR9DA2m00FBfnKzclRRnq60tPSlJ62T2n79mnb5k0qLCzU/oxMfTd+sr4bP1k3Xt9Gj9/fTxXKlzW7dNMRsuCRdqem6eVhH0iSyoYHadgznVWhbIjJVcFVzV68xRGwGtZL1sAH+5tckbm2bNulYSM+1+p1Gx3b4hMSdXVKipo0a66EpCQTq4OZkipVPuN6bk6O1vy5UiuWLNb6NatVWFio36bN09wFy/XQ3beqT7fr5evrvacRCVnwOMeP52nQy8N1LDtHPj4W/e/pGxQbVfyXu8I77Ug9pP+8N1OSVKFchIa99KT8/Lz3rXHF6g0a+PxrysvLlyRFxcSo74C7Vb9RY5MrgysKDglRSstWSmnZSoezsjTh+zFaNH+ejmXn6K0PvtLfm7bqpWce8dqg5b3vJPBIdrtdr737mTZv2ylJevj2FDVtwF/dOL/c4wUa9Prvys4tkK+Pj1576UlFVihndlmmOT1g+fn5qWuPnrrhxpvlHxBQ/J3h9SLKltU9Dz+qVu3a69svP1Pq7t2aPH2+JHlt0PK+ZwyPNmHSDMcPdeumVTSg59UmVwRXZbfbNXTkbG3bdVCS9PgD/dS4QW2TqzLPqrV/nwpY/v567OlBuqlnbwIWLlmN5GQ998oQVat5lSRp8vT5GvLWR7Lbve9DE4QseIz1f2/WWx98JUlKiovQf57oKB8a3XEBYyev1bQ/NkmS2rdOUb8+N5pckXmO5+Xr5WEfnApYTz2jug0bml0W3FhwSIj+9ezzjqD127R5mjV/qclVOR8hCx7hUNYRPfvK2yostCowwE9vPNtFYaGBZpcFF7X6771656sFkqTKFRP00qCHvfoTcaO+/0V70zIkSXfe9wABC6XiZNAqX6GCJOmdD0d53Vw1QhbcntVq0+D/jtD+jExJ0uBH2qlG5UiTq4KryszK0fNvTpXValNwUKDe/M/TKhMSbHZZptmTmqZR30+UJNWsVVvNW7U2uSJ4kuCQEN16xwBJ0v6MTH357U8mV+RchCy4vdMHjvbpXE9d2iabXBFcVaHVphfemqqMg9mSGDgqSZ9/O0H5BQXy8fFRv7vv8eoVPRijcdNmqlO/gSTp2x8n6VDWEZMrch5CFtza2QNHn7ynlckVwZWNHL1YK9enSmLgqCTl5xdozoJlkqSUlq2UkFTR5IrgiSwWi3rddrskqbDQqrknXnPegJAFt3W+gaMB/r4mVwVXNXvxFo3+5U9JDBw9acmKNcrOzpUkNb22hcnVwJMlVa6smLg4SdKMeYtNrsZ5CFlwSwwcxaVg4Oj5zZhb9MuuTGiokuvUNbkaeDKLxaImzZpLklau2qCsw95xypCQBbfDwFFcipzcfA0axsDRs9ntdi1YUrSy16jJNYROGK5JSookyWqzaeHS1eYW4ySELLgddxw4OuanRSpb8yHHf4mNBqrFTUP06eg5Kiy0lvj+O/ccuKxjjx6/sET7/rH0H5Wt+ZD+WPrPJR/HFdntdg39cLa27Wbg6NkyDx3W0WNFHwCofpV3f1hkysSf1bZBnfP+17VlSqkeY19qaqk8njtKrFhJgUFBkqQdu/aYXI1z8KcL3Iq7Dxwd9d79io8tp6PHjuuXKSs1aMhYZRw8qsEDb77o/a5vW08zxg1SbHTEJR/zu58Wy1po0x29i++5aVCnomaMG6Srqsdd8nFc0djJazX9j82SGDh6tt179jkux8R6xv/vK/XKW28rKib2jG2+vvR5lhaLxaKY2Djt2rFdu1PTzC7HKQhZcBueMHC0Xq0kVa0ULUm6rmVtbduVoU9Gzb5gyCoosMrPz0eR5cMUWd74nrPw0GBd07Cq4cdxBgaOXtyu1FMhKzo29iJ7eo/qVyUrsWIls8vwaNExMdq1Y7t2eUnI4nQh3IKnDhxtXK+Sjhw7rozMI9q554DK1nxIn4+Zq5femKDkls8quu5jOnwk57ynC+u1e0EP/PtLTfhtuZre8IriGzyhtj3/p8Urtjj26dp/uBYu26wlf251nKrs2n/4BevxlNOFDBwt3p4Tv+QCg4IUHnHpK6Te5uTpvg1r12jo84PU5dqm6tWhrd4b9j/l5eWdse/ePbv13GMP6/pmV6tb25Z6//XXVJBfYFLlriX6xCcM96SmecV3GbKSBbfgqQNHd+7JlK+vj8qEBCknN1+SNPyjKWpUr7LeHdJPVqtNgYH+F7z/ohVbtHnbfg3+100KDPTXf9+dpFsfHKm1c/6rsuEhGv5KXz3w769ktdr07pB+kqSw0CCnPDezMHC0ZNIPFPWpVYiMYoXvBJvNpsLCwjO2+fj4yMfn1HrE/wY/p/Y3dNGrb4/QX2tW6+uPP1RYeLjufuQxSVJBQb7+/eD9yss7rn89/6LKli+vSePHaf6smU59Lq6qQmSUJCkn97iyc3IVWibE5IqMRciCy/OkgaNWq02FhVYdyz6un6es1KTpq3RDu/oKCQ5w7BMVGa4xHz5Uol98R48d14KJg1U2oowkKSYyQu16vaYZ89arz01NlVw9XmGhQbIW2jzmNGBxGDhaMnl5RaE+MNC9Trkb6c5u5/bspbRqo2EffOi43qFzV0egapLSXH+tW6dZU353bJv260Tt3bNbI0d/55hy3qxlK93Tq7synPAcXN3pr7e8vHxCFmAmTxs4es0Nrzgu+/hY1Oempho2+JYz9unaoWGJVxaaNqziCFiSVPuqeEnSnr0Hr7xYNzRrEQNHSyrvxOkrP/8Lr5R6myHvvKeomJgztoWGndkLmXLWdztWrVFDK5eeGq65Yc0aRcfGOgKWVLQa1vb6G/T1RyMNqNq9nP56y/eCU6iELLgsTxw4+u3Ih5QQW06hZQKVlFBBQec5FRgbFV7ixytXtswZ1wMDih7veJ7nv3mdbUfqIb36PgNHS8r3xCkwu91mciWuo0r16sU2voed1b/mHxCggvx8x/XMAxkqV6HCOfcrV/7cbd7Ibjv1evPx9fy2cN6B4JI8deBo7Zrxjk8XXgj9MZeOgaOXLuBEIKchu3RViIzSjq1bztl+6GCmCdW4noKCU6+3k38UejLPj5FwS+44cNRVBQb4K9eDV7bOGTj6YH8GjpbAyU9b5mRnm1yJZ6nToIHS09K0Ye0axzabzaa506aaWJXrOP31FhTk2R/CkVjJggty94Gjruaq6rH6Ysx8/TR5hapUjFJomUDVqOo5c5HOGTjau6vJFbmH+LiiFdXMAxkqLCzk1KqkLf9s1OGsrHO2X1W7Tokf4/qbu+m7L7/QS08N1H2PD1S58hX0649jlU2YlSSl7y8aHRJZoZyCAgOK2dv98VMFl+IJA0ddzb/uv15btu3XEy+O1rHsPLVoWkOTv33a7LJKBQNHL19SQtG8IpvNpsyMDMXEMfX9lX8/dd7tv8xdUOLH8PcP0FuffKYRr/1X7/5vqIKCg9Whc1eltGqjt4f+p7RKdVvpaUUhq2KC5/yhdzEWuzdMA7sMazds0j2PvyhJ+vL9oapfp6bJFXk+q9Wmx5/7r2Me1qv/6ugx87BQ+jKzctT/qR+UcTBbwUGB+uaj15iHdQn+2bJD/R4YJEka+OzzqtewkckVwRu88OQTSk9L082d2+mlZx42uxzD0ZMFl+GpA0dR+gqtNj3/JgNHr0TSaSsJ+/Z675cWw3kK8vN1ID1dklQxwTtWTglZcAmeNHAUxhs5epH+3MDA0SsREhykSklFc9XWrVplcjXwBhvWrpXtxAiH5BpVTK7GOQhZMJ2nDRyFsYoGjhaFAgaOXpn2rVMkSRs3rNfRI0dMrgaebsWJoa0R4aFq0qjkHyZwZ4QsmMoTB47COAwcLV0d2zaXVDQG48/ly0yuBp6sID9fa1aukCS1bdnUa35uCVkwjacOHIUxGDha+qpXraiKiUW9MQvmzHacygFK24qlS5SbmytJ6tAmxeRqnIeQBdMwcBQlxcBRY1gsFnXrcp0kafvWLVr8x3yTK4InOp6bqwnfj5EkxcVE6ZpGdU2uyHkIWTAFA0dxKRg4apy+Pbs4Pmk4/rsxTIBHqZv003hlHTokSXr60QFec6pQImTBBAwcxaVg4KixAgL89e/H7pYkHT1yWGO++oLThig1mzb+rZlTfpckXdu0kdq0uMbkipyLkAWnslptGvzfEdqfUfRlqYMfaacalSNNrgqu6sChbD33xlRZrTYFBwXqzf887fjOPZSeFs0aqe2JX35LFy7QN59/StDCFdu8caNGDPufrFarAvz99czjd3vdH0iELDgVA0dRUoVWm154a5oOHGLgqDO8/OwjqpNcXVJRE/w3n32iwsJCk6uCu9r41wa9O+y/ysvLk5+fr4a9/OQZA3C9BSELTsPAUVwKBo46V1hoGX3wxuBTQWvuHL363CBt3LDe5MrgTo4dParRn3+q4UNfdQSsN155Wq2vbWJ2aaYgZMEpGDiKS8HAUXOEhZbRyDdeVMN6RSvMe1P36K2hr+rT997Vjm3bxFfd4kKOHT2qWVOn6MWn/qV5s2bKbrcrOCjQqwOWJHlPiz9Mw8BRXAoGjporNDREn7z9iiZOma2Rn3+nw0eOadniRVq2eJGiomN0dUqKGl/TTIkVKyogIMDscmESm82mrEMHtX7NGq1cukR/r193Rh9fx3bX6l8P3aGYqAomVmk+3rlgqLMHjtasHKnNOw9o884DJlcGV/XL9A0MHDWZr6+Pet7YQde1aqqRn3+vX6fOldVqVUb6fk39daKm/jpRklSufAXFxMYqOjZW4WXLyt/fX35+/rIwjsVz2CWr1arCggLl5uYoY/9+pe9PU8b+/crPzz9n92pVkvT0o3epaeN6JhTreghZMNTpA0claeO2DG3clmFiRXAXDBw1X9mIcA1++kE9dn8/zVu4XDPnLdHSlWtltVolSYcOZurQwUxt/GuDyZXCTEkJserQJkUd2l6rmtUqed0nCC+GkAXDnD5wFLgUDBx1LRHhobq5czvd3LmdDh85prUb/tGuPfu0Z2+adu1J0+7UfTpyNFt5+fkqKOATiZ7Gx8eiwIAABQUFKi4mShUT45SUEKukhFjVrFZZ1aokEawugJAFw9RJrq7F074zuwyPlJZ+QDf1fVSS9Nr//UsdTnzRryfhTds1RYSHqlXzC38FFs3xnoefxctHyIJh+ME0zun/thaLhX9ruAxei8ApjHAAAAAwACELAADAAIQsAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAxAyAIAADAAIQsAAMAAhCwAAAADELIAAAAMQMgCAAAwACELAADAAIQsAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAzgZ3YBAIo3Y+4iTZ+zSHabXZJ0PD/fcds3Y3/V1FkLHNfr1Kquu/p2l8VicXqdAIBTCFmAGxj27hc6fOToeW/765+t+uufrY7rcxcuV8c2zZWYEOus8gAA58HpQsANNGlYp8T7JsRFKzYm0sBqAAAlQcgC3MD9d/Yu8b739O8pPz8WqQHAbIQswA1Ur1pR7VunFLtfQly0unZs7YSKAADFIWQBbqIkq1msYgGA6yBkAW6iuNUsVrEAwLUQsgA3crHVLFaxAMC1ELIAN3Kh1SxWsQDA9RCyADdzvtUsVrEAwPUQsgA3U71qRbVo1shxvXzZcFaxAMAFEbIAN3Rv/56Oyzd3vo5VLABwQbwzw6Vl5+Rq6/bdZpfhgizq3a2T0jMy1bJ5Y63dsMnsglxOtSpJKhMSbHYZALwYIQsubev23brn8RfNLsOlzV+00uwSXNKX7w9V/To1zS4DgBfjdCEAAIABWMmC23j40VtVqXKc2WXAhe3csU8fjRxrdhkAIImQBTdSqXKckpOrmF0GAAAlwulCAAAAAxCyAAAADEDIAgAAMAAhCwAAwACELAAAAAMQsgAAAAxAyAIAADAAIQsAAMAAhCwAAAADELIAAAAMQMgCAAAwACELuAIjR4xS3WodnHa8ZUtWq261Dlq2ZLXTjjlxwnT965FX1LHV7apbrYMGP/OG044NAO6MkAVcgV63dNGY8e857Xi169TQmPHvqXadGk475qSJM7V71z41b3m1QkNDnHZcAHB3fmYXALiz2LgoxcZFOe14oWFl1KBR7cu6b91qHTT09WfUvff1l3S/T78eJh+for/HFs5fflnHBgBvxEoWcAW84XThyYAFALg0rGQBTmCz2WSz2Yvdz9fXRxaLxQkVAQCMRsgqgS3bd5ldgtfylH/7/3v2LU38aXqx+13O6bzzsdvtslpt52y32W0qLLQ6rvv4WFipAgCDELJK4H9vf2p2CXBzjwy8U33v6FbsfolJsaVyvIkTpuvFZ988Z/tLzw3XS88Nd1zv1rOT/vvmoFI5JgDgTISsC6hSKUGhZUJ0LDvH7FLgAeLioxUTW3yDvK9v6awqtW2foh9+HnnGttt6PKqHn7hDbdqlOLaVKx9RKscDAJyLkHUBYaFlNOn7kdq+M9XsUrzalu27PGIl0dmnC8uWi1DZcucGqISEWNWtf9UVPz4AoHiErIsICy2j+nVqml0GPICzTxcCAMxHyAKcICExVgmJ7hmgtm7eqa1bdkqSjh/P097U/Zo+Zb4kqUnT+ipfoayJ1QGA6yJkAbioqb/P1UfvjXZcX750jZYvXSNJ+nLMW2paoaFJlQGAayNkAVfg0YED9OjAAU47XtOUhlq/deZl3fdy7+fs5wgAnoIBOQAAAAYgZAEAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFAABgAEIWAACAAQhZAAAABiBkAQAAGICQBQAAYABCFgAAgAEIWQAAAAbwM7sAoKR27thndglwcbxGALgSQhbcxkcjx5pdAgAAJcbpQgAAAANY7Ha73ewigAvJzsnV1u27zS4DbqhalSSVCQk2uwwAXoyQBQAAYABOFwIAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFAABgAEIWAACAAQhZAAAABiBkAQAAGICQBQAAYABCFgAAgAEIWQAAAAYgZAEAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFAABgAEIWAACAAQhZAAAABiBkAQAAGICQBQAAYABCFgAAgAEIWQAAAAYgZAEAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFAABgAEIWAACAAQhZAAAABiBkAQAAGICQBQAAYABCFgAAgAEIWQAAAAYgZAEAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFAABgAEIWAACAAQhZAAAABiBkAQAAGICQBQAAYABCFgAAgAEIWQAAAAYgZAEAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFAABgAEIWAACAAQhZAAAABiBkAQAAGICQBQAAYABCFgAAgAEIWQAAAAYgZAEAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFAABgAEIWAACAAQhZAAAABiBkAQAAGICQBQAAYABCFgAAgAEIWQAAAAYgZAEAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFAABgAEIWAACAAQhZAAAABiBkAQAAGICQBQAAYABCFgAAgAEIWQAAAAYgZAEAABiAkAUAAGAAQhYAAIABCFkAAAAGIGQBAAAYgJAFAABgAEIWAACAAQhZAAAABiBkAQAAGICQBQAAYABCFgAAgAH+HxYoCZ6YriFiAAAAAElFTkSuQmCC)\n",
    "\n",
    "*Figure 6. Counting from 1 to 5. Python's `for` hides the counter bookkeeping.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f9ac02af",
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(1, 6):\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71a66d2f",
   "metadata": {},
   "source": [
    "Here is what happens as the loop runs. This kind of table is called a **trace table**, and drawing one is the best way to understand any loop.\n",
    "\n",
    "| Pass | `i` at start | Is `i` in the range? | Output |\n",
    "|---|---|---|---|\n",
    "| 1 | 1 | Yes | 1 |\n",
    "| 2 | 2 | Yes | 2 |\n",
    "| 3 | 3 | Yes | 3 |\n",
    "| 4 | 4 | Yes | 4 |\n",
    "| 5 | 5 | Yes | 5 |\n",
    "| (end) | 6 | No, loop stops | |\n",
    "\n",
    "### How `range()` works\n",
    "\n",
    "`range(start, stop, step)` produces numbers beginning at `start`, going up by `step`, and stopping **before** `stop`. The stop value is never included. That catches almost everyone out at first.\n",
    "\n",
    "| Code | Numbers produced |\n",
    "|---|---|\n",
    "| `range(5)` | 0, 1, 2, 3, 4 |\n",
    "| `range(1, 6)` | 1, 2, 3, 4, 5 |\n",
    "| `range(0, 10, 2)` | 0, 2, 4, 6, 8 |\n",
    "| `range(5, 0, -1)` | 5, 4, 3, 2, 1 |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ade7f623",
   "metadata": {},
   "outputs": [],
   "source": [
    "for n in range(0, 10, 2):\n",
    "    print(n, end=\" \")     # end=\" \" keeps everything on one line\n",
    "print()\n",
    "\n",
    "for n in range(5, 0, -1):\n",
    "    print(n, end=\" \")\n",
    "print(\"Lift off!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "254294e3",
   "metadata": {},
   "source": [
    "### The accumulator pattern\n",
    "\n",
    "Very often a loop builds up an answer one step at a time. Set a variable to a starting value **before** the loop, then update it **inside** the loop."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9dbca7db",
   "metadata": {},
   "outputs": [],
   "source": [
    "total = 0\n",
    "for i in range(1, 6):\n",
    "    total += i\n",
    "    print(f\"i = {i}, running total = {total}\")\n",
    "print(\"Final total:\", total)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0ade15b2",
   "metadata": {},
   "source": [
    "### Looping over text\n",
    "\n",
    "A string is a sequence of characters, so you can loop over it directly. The `in` operator also checks whether something is inside a string."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "766a5041",
   "metadata": {},
   "outputs": [],
   "source": [
    "for letter in \"Python\":\n",
    "    print(letter)\n",
    "\n",
    "print(\"y\" in \"Python\")\n",
    "print(\"z\" in \"Python\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "749ea1e7",
   "metadata": {},
   "source": [
    "### Exercise 7: Password attempts\n",
    "\n",
    "Write a program that gives the user **three attempts** to enter the password `python123`.\n",
    "\n",
    "* If they get it right, print `Access granted` and stop asking.\n",
    "* After each wrong guess, say how many attempts are left.\n",
    "* If all three attempts are wrong, print `Account locked`.\n",
    "\n",
    "Plan it as a flowchart first. You will need a counter and a `while` loop whose condition checks more than one thing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "342bd58b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exercise 7: write your code below"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c13fc32",
   "metadata": {},
   "source": [
    "### Exercise 8: Times table\n",
    "\n",
    "Set `number = 7` and use a `for` loop to print its times table from 1 to 12.\n",
    "\n",
    "```\n",
    "1 x 7 = 7\n",
    "2 x 7 = 14\n",
    "...\n",
    "12 x 7 = 84\n",
    "```\n",
    "\n",
    "Then change `number` to something else and run it again."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fe7f31a6",
   "metadata": {},
   "outputs": [],
   "source": [
    "number = 7\n",
    "\n",
    "# Write your loop below"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6677d55a",
   "metadata": {},
   "source": [
    "### Exercise 9: Totals and counting\n",
    "\n",
    "**Part A.** Using a `for` loop, add up all the whole numbers from 1 to `n` (inclusive) and store the answer in `total`. With `n = 10` the answer should be 55.\n",
    "\n",
    "**Part B.** Using a `for` loop and `if`, count how many vowels (`a`, `e`, `i`, `o`, `u`) are in the word stored in `word`, and store the answer in `vowel_count`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d2a9d033",
   "metadata": {},
   "outputs": [],
   "source": [
    "n = 10\n",
    "total = 0\n",
    "# Part A: write your loop below\n",
    "\n",
    "\n",
    "word = \"programming\"\n",
    "vowel_count = 0\n",
    "# Part B: write your loop below"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b0ebe3b4",
   "metadata": {
    "tags": [
     "check"
    ]
   },
   "outputs": [],
   "source": [
    "check(\"total\", total, 55)\n",
    "check(\"vowel_count\", vowel_count, 3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7770e9f7",
   "metadata": {},
   "source": [
    "---\n",
    "## 8. Lists\n",
    "\n",
    "So far each variable has held a single value. A **list** holds many values in order, inside square brackets. Lists are how we handle things like a set of exam marks, a shopping basket or a class register.\n",
    "\n",
    "![A list with index positions](data:image/png;base64,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)\n",
    "\n",
    "*Figure 7. Each item has a position called an index. Counting starts at 0, not 1.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "da7b17cc",
   "metadata": {},
   "outputs": [],
   "source": [
    "marks = [72, 58, 91, 65, 80]\n",
    "\n",
    "print(marks)\n",
    "print(marks[0])      # first item\n",
    "print(marks[2])      # third item\n",
    "print(marks[-1])     # last item (negative numbers count from the end)\n",
    "print(len(marks))    # how many items"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6ebb6c92",
   "metadata": {},
   "source": [
    "> **Counting from zero.** The first item is at index `0`, so a list of 5 items has indexes 0 to 4. Asking for `marks[5]` gives an `IndexError`. This is the same \"stop value is not included\" idea you saw with `range()`.\n",
    "\n",
    "### Useful list tools\n",
    "\n",
    "| Code | What it does |\n",
    "|---|---|\n",
    "| `marks.append(55)` | Adds an item to the end |\n",
    "| `marks.remove(58)` | Removes the first item with that value |\n",
    "| `marks[1] = 60` | Changes the item at index 1 |\n",
    "| `len(marks)` | Number of items |\n",
    "| `sum(marks)` | Adds up all the items |\n",
    "| `min(marks)`, `max(marks)` | Smallest and largest |\n",
    "| `sorted(marks)` | A new, sorted copy |\n",
    "| `65 in marks` | `True` if the value is in the list |\n",
    "| `marks[1:4]` | A slice: indexes 1, 2 and 3 |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "033c1e46",
   "metadata": {},
   "outputs": [],
   "source": [
    "marks = [72, 58, 91, 65, 80]\n",
    "\n",
    "marks.append(55)\n",
    "marks[1] = 60\n",
    "print(marks)\n",
    "print(\"Highest:\", max(marks))\n",
    "print(\"Sorted:\", sorted(marks))\n",
    "print(\"First three:\", marks[0:3])\n",
    "print(65 in marks)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "159254c2",
   "metadata": {},
   "source": [
    "### Looping through a list\n",
    "\n",
    "A `for` loop can pick out each item in turn. No counter needed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "191c7e07",
   "metadata": {},
   "outputs": [],
   "source": [
    "names = [\"Aisha\", \"Ben\", \"Chloe\"]\n",
    "\n",
    "for person in names:\n",
    "    print(f\"Hello, {person}!\")\n",
    "\n",
    "# If you also need the position, use enumerate\n",
    "for position, person in enumerate(names):\n",
    "    print(position, person)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "42a6c07f",
   "metadata": {},
   "source": [
    "### Exercise 10: Exam marks\n",
    "\n",
    "You are given a list of marks. Without changing the list, calculate and store:\n",
    "\n",
    "* `total`: the sum of all marks\n",
    "* `average`: the total divided by the number of marks\n",
    "* `highest`: the highest mark\n",
    "* `pass_count`: how many marks are 40 or above (use a loop with an `if`)\n",
    "\n",
    "After that, append a new mark of `55` to the list and print how many marks there are now."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ab83f98f",
   "metadata": {},
   "outputs": [],
   "source": [
    "marks = [72, 58, 91, 35, 64, 80]\n",
    "\n",
    "total = None\n",
    "average = None\n",
    "highest = None\n",
    "pass_count = 0\n",
    "\n",
    "# Write your code below"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a77b49d9",
   "metadata": {
    "tags": [
     "check"
    ]
   },
   "outputs": [],
   "source": [
    "check(\"total\", total, 400)\n",
    "check(\"average\", round(average, 2) if average else average, 66.67)\n",
    "check(\"highest\", highest, 91)\n",
    "check(\"pass_count\", pass_count, 5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b8b1f92f",
   "metadata": {},
   "source": [
    "---\n",
    "## 9. Functions\n",
    "\n",
    "A **function** is a named, reusable block of code. You have been using ready-made ones all along: `print()`, `input()`, `len()`. Now you will write your own. In a flowchart, this is the \"sub-process\" box. In EduBlocks, it is the define-function block.\n",
    "\n",
    "![Function call diagram](data:image/png;base64,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)\n",
    "\n",
    "*Figure 8. Values go in as arguments. A value comes back out with `return`.*\n",
    "\n",
    "| Pseudocode | Python |\n",
    "|---|---|\n",
    "| `FUNCTION area(w, h)` | `def area(w, h):` |\n",
    "| `    RETURN w * h` | `    return w * h` |\n",
    "| `ENDFUNCTION` | *(nothing, the indentation ends the block)* |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3eb8c211",
   "metadata": {},
   "outputs": [],
   "source": [
    "def area(w, h):\n",
    "    return w * h\n",
    "\n",
    "result = area(5, 3)\n",
    "print(result)\n",
    "\n",
    "print(area(10, 2))     # you can reuse it as many times as you like"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1dc10b09",
   "metadata": {},
   "source": [
    "### Parameters and arguments\n",
    "\n",
    "* The names inside the brackets of the `def` line (`w`, `h`) are **parameters**. They are placeholders.\n",
    "* The actual values you pass when you call the function (`5`, `3`) are **arguments**.\n",
    "\n",
    "### `return` is not the same as `print`\n",
    "\n",
    "This confuses nearly everyone at first.\n",
    "\n",
    "* `print()` **shows** something on the screen. The program cannot use that value afterwards.\n",
    "* `return` **hands a value back** to whichever line called the function, so it can be stored or used in a calculation.\n",
    "\n",
    "Compare these two functions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3e053bc0",
   "metadata": {},
   "outputs": [],
   "source": [
    "def double_and_print(x):\n",
    "    print(x * 2)\n",
    "\n",
    "def double_and_return(x):\n",
    "    return x * 2\n",
    "\n",
    "a = double_and_print(4)     # prints 8, but a gets nothing useful\n",
    "b = double_and_return(4)    # prints nothing, but b gets the value 8\n",
    "\n",
    "print(\"a is\", a)\n",
    "print(\"b is\", b)\n",
    "print(\"b plus 10 is\", b + 10)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d1f28d6f",
   "metadata": {},
   "source": [
    "### A function that makes a decision\n",
    "\n",
    "Functions can contain anything you already know: `if` statements, loops, even other function calls. Returning a `bool` is a very tidy way to answer yes/no questions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9951eccd",
   "metadata": {},
   "outputs": [],
   "source": [
    "def is_even(number):\n",
    "    return number % 2 == 0\n",
    "\n",
    "print(is_even(10))\n",
    "print(is_even(7))\n",
    "\n",
    "def grade(score):\n",
    "    if score >= 70:\n",
    "        return \"Distinction\"\n",
    "    elif score >= 40:\n",
    "        return \"Pass\"\n",
    "    else:\n",
    "        return \"Fail\"\n",
    "\n",
    "print(grade(85), grade(55), grade(20))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d667a233",
   "metadata": {},
   "source": [
    "### Exercise 11: Turn earlier exercises into functions\n",
    "\n",
    "Rewrite three of your earlier solutions as functions. Each one should **return** its answer rather than print it.\n",
    "\n",
    "1. `ticket_price(age)` returns the price from Exercise 5.\n",
    "2. `can_ride(height_cm, age, with_adult)` returns `True` or `False` from Exercise 6.\n",
    "3. **Stretch:** `is_leap_year(year)` returns `True` if `year` is a leap year. A year is a leap year if it is divisible by 4, **except** century years (like 1900), which must be divisible by 400 (like 2000).\n",
    "\n",
    "Run the check cell underneath to see how you did."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7deb5030",
   "metadata": {},
   "outputs": [],
   "source": [
    "def ticket_price(age):\n",
    "    pass      # replace this line with your code\n",
    "\n",
    "\n",
    "def can_ride(height_cm, age, with_adult):\n",
    "    pass      # replace this line with your code\n",
    "\n",
    "\n",
    "def is_leap_year(year):\n",
    "    pass      # replace this line with your code (stretch)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b6a12c09",
   "metadata": {
    "tags": [
     "check"
    ]
   },
   "outputs": [],
   "source": [
    "check(\"ticket_price(3)\", ticket_price(3), 0)\n",
    "check(\"ticket_price(5)\", ticket_price(5), 6)\n",
    "check(\"ticket_price(17)\", ticket_price(17), 6)\n",
    "check(\"ticket_price(18)\", ticket_price(18), 10)\n",
    "check(\"ticket_price(64)\", ticket_price(64), 10)\n",
    "check(\"ticket_price(65)\", ticket_price(65), 7)\n",
    "\n",
    "check(\"can_ride(130, 10, False)\", can_ride(130, 10, False), True)\n",
    "check(\"can_ride(130, 6, False)\", can_ride(130, 6, False), False)\n",
    "check(\"can_ride(130, 6, True)\", can_ride(130, 6, True), True)\n",
    "check(\"can_ride(110, 12, False)\", can_ride(110, 12, False), False)\n",
    "\n",
    "check(\"is_leap_year(2024)\", is_leap_year(2024), True)\n",
    "check(\"is_leap_year(2023)\", is_leap_year(2023), False)\n",
    "check(\"is_leap_year(1900)\", is_leap_year(1900), False)\n",
    "check(\"is_leap_year(2000)\", is_leap_year(2000), True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6c722979",
   "metadata": {},
   "source": [
    "---\n",
    "## 10. Debugging\n",
    "\n",
    "Every programmer, at every level, spends a lot of time fixing mistakes. The skill is not avoiding errors. The skill is **reading them calmly**.\n",
    "\n",
    "When Python hits a problem it stops and prints an error message. **Read the last line first.** It names the type of error and says what went wrong. The lines above it show where.\n",
    "\n",
    "| Error | Typical cause | Example |\n",
    "|---|---|---|\n",
    "| `SyntaxError` | A typo in the structure: missing colon, bracket or quote | `if x > 5` (no colon) |\n",
    "| `IndentationError` | Lines not lined up properly | A loop body that is not indented |\n",
    "| `NameError` | Using a variable that does not exist (often a typo) | Writing `totl` instead of `total` |\n",
    "| `TypeError` | Mixing types that do not go together | `\"Age: \" + 20` |\n",
    "| `ValueError` | Right type, unsuitable value | `int(\"hello\")` |\n",
    "| `ZeroDivisionError` | Dividing by zero | `10 / 0` |\n",
    "| `IndexError` | List position does not exist | `marks[5]` in a list of 5 |\n",
    "\n",
    "There is a second kind of bug that does **not** produce an error message: a **logic error**. The program runs, but gives the wrong answer. A trace table, extra `print()` statements to see what your variables hold, and testing boundary values are your best tools for these.\n",
    "\n",
    "### Exercise 12: Fix the bugs\n",
    "\n",
    "Each snippet below has at least one bug. Do **not** run them as they are. Retype each one into the code cell underneath, fix it, and run it. Say what kind of error it was.\n",
    "\n",
    "**Bug A** (should greet Sam)\n",
    "```python\n",
    "name = \"Sam\"\n",
    "if name == \"Sam\"\n",
    "    print(\"Hi Sam\")\n",
    "```\n",
    "\n",
    "**Bug B** (should print `Next year you will be 21`)\n",
    "```python\n",
    "age = input(\"Age: \")\n",
    "print(\"Next year you will be \" + age + 1)\n",
    "```\n",
    "\n",
    "**Bug C** (should print the total of 1 to 5, which is 15)\n",
    "```python\n",
    "total = 0\n",
    "for i in range(1, 5):\n",
    "total = total + i\n",
    "print(total)\n",
    "```\n",
    "\n",
    "**Bug D** (should print the last mark)\n",
    "```python\n",
    "marks = [50, 60, 70]\n",
    "print(marks[3])\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "15309858",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Bug A, fixed\n",
    "\n",
    "\n",
    "# Bug B, fixed\n",
    "\n",
    "\n",
    "# Bug C, fixed\n",
    "\n",
    "\n",
    "# Bug D, fixed"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "50076727",
   "metadata": {},
   "source": [
    "---\n",
    "## 11. Mini project: number guessing game\n",
    "\n",
    "Time to combine everything. You will build a game where the computer picks a secret number and the player tries to guess it.\n",
    "\n",
    "Python can pick random numbers using the `random` module."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "558c5303",
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "\n",
    "secret = random.randint(1, 20)    # a random whole number from 1 to 20, inclusive\n",
    "print(\"The computer chose a number. (Run this cell again to get a different one.)\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9fdd32f6",
   "metadata": {},
   "source": [
    "### The plan\n",
    "\n",
    "Here is the pseudocode. Before writing any Python, **draw the flowchart**. Which symbols do you need? Where does the loop-back arrow go?\n",
    "\n",
    "```\n",
    "SET secret TO a random number from 1 to 20\n",
    "SET guess TO 0\n",
    "SET guesses TO 0\n",
    "OUTPUT \"I am thinking of a number between 1 and 20\"\n",
    "WHILE guess is not equal to secret\n",
    "    INPUT guess\n",
    "    ADD 1 to guesses\n",
    "    IF guess < secret THEN\n",
    "        OUTPUT \"Too low\"\n",
    "    ELSE IF guess > secret THEN\n",
    "        OUTPUT \"Too high\"\n",
    "    ELSE\n",
    "        OUTPUT \"Correct! It took you\", guesses, \"guesses\"\n",
    "    ENDIF\n",
    "ENDWHILE\n",
    "```\n",
    "\n",
    "### Exercise 13: Build the game\n",
    "\n",
    "Translate the pseudocode into Python. Remember to convert the input into an integer.\n",
    "\n",
    "**Stretch challenges** (do them one at a time, and test after each):\n",
    "\n",
    "1. Limit the player to 6 guesses. If they run out, reveal the secret number.\n",
    "2. Ask the player to choose the upper limit of the range (for example 50 or 100).\n",
    "3. After the game ends, ask \"Play again? (y/n)\" and restart if they say `y`. (Hint: a function would help here.)\n",
    "4. Keep every guess in a list and print them all at the end."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "234defae",
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "\n",
    "# Exercise 13: write your game below"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "43baf027",
   "metadata": {},
   "source": [
    "---\n",
    "## 12. Summary and cheat sheet\n",
    "\n",
    "| Concept | Python | Remember |\n",
    "|---|---|---|\n",
    "| Output | `print(\"Hi\", x)` | Strings need quotes |\n",
    "| Input | `x = input(\"Prompt: \")` | Always returns text |\n",
    "| Convert | `int()`, `float()`, `str()` | Convert before doing maths |\n",
    "| Variable | `total = 0` | `=` stores, `==` compares |\n",
    "| f-string | `f\"Total: {total}\"` | Put `f` before the quote |\n",
    "| Decision | `if` / `elif` / `else` | Colon and indentation |\n",
    "| Condition loop | `while condition:` | Make sure something changes |\n",
    "| Counting loop | `for i in range(1, 6):` | Stop value is excluded |\n",
    "| List | `items = [1, 2, 3]` | Index starts at 0 |\n",
    "| Function | `def name(params):` + `return` | `return` is not `print` |\n",
    "\n",
    "### Self-check\n",
    "\n",
    "Tick these off in your head. For each one you cannot do yet, go back to that section.\n",
    "\n",
    "* I can turn a flowchart diamond into an `if` or a `while`.\n",
    "* I can explain why `input(\"5\")` gives text and how to get a number from it.\n",
    "* I can predict what `range(2, 8, 2)` produces.\n",
    "* I can explain the difference between `=` and `==`.\n",
    "* I can write a function that returns a value and call it.\n",
    "* I can read the last line of an error message and say what it means.\n",
    "\n",
    "### Where next?\n",
    "\n",
    "* Try the stretch challenges in Exercise 13.\n",
    "* Rebuild one of your old EduBlocks programs in Python and compare the two.\n",
    "* Take a problem you have solved with a flowchart before, and write the Python without looking at any notes.\n",
    "* Coming up in later work: dictionaries, reading and writing files, and handling errors with `try` and `except`."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d8862b80",
   "metadata": {},
   "source": [
    "---\n",
    "# Appendix: Model answers\n",
    "\n",
    "Please give each exercise a proper go first. Struggling with it for a few minutes is how the learning happens. There is rarely only one correct answer, so if your solution works and looks different, that is fine.\n",
    "\n",
    "In JupyterLab the solution code is collapsed by default. Click the small expand icon beside a cell to reveal it."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a67f709e",
   "metadata": {},
   "source": [
    "**Solution 1: About me**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "12d35a82",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "# Prints a short introduction about me\n",
    "print(\"Alex Morgan\")\n",
    "print(\"BSc Applied Computing\")\n",
    "print(\"I enjoy cycling at the weekend\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6730efd5",
   "metadata": {},
   "source": [
    "**Solution 2: Rectangle**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fde00a37",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "width = 8\n",
    "height = 5\n",
    "\n",
    "area = width * height\n",
    "perimeter = 2 * (width + height)\n",
    "\n",
    "print(f\"A {width} by {height} rectangle has an area of {area} and a perimeter of {perimeter}.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a36fbe54",
   "metadata": {},
   "source": [
    "**Solution 3: Sum and average**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "767da81e",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "first = float(input(\"Enter the first number: \"))\n",
    "second = float(input(\"Enter the second number: \"))\n",
    "\n",
    "total = first + second\n",
    "average = total / 2\n",
    "\n",
    "print(f\"Sum: {total}\")\n",
    "print(f\"Average: {average}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "00148ac7",
   "metadata": {},
   "source": [
    "**Solution 4: Time converter**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "aae78e57",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "total_seconds = 3725\n",
    "\n",
    "hours = total_seconds // 3600\n",
    "remaining = total_seconds % 3600\n",
    "minutes = remaining // 60\n",
    "seconds = remaining % 60\n",
    "\n",
    "print(f\"{hours} hours, {minutes} minutes, {seconds} seconds\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4ec5b8c2",
   "metadata": {},
   "source": [
    "**Solution 5: Cinema tickets**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "454195c4",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "age = int(input(\"Enter your age: \"))\n",
    "\n",
    "if age < 5:\n",
    "    price = 0\n",
    "elif age <= 17:\n",
    "    price = 6\n",
    "elif age <= 64:\n",
    "    price = 10\n",
    "else:\n",
    "    price = 7\n",
    "\n",
    "print(f\"Your ticket costs £{price}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "11de9ec9",
   "metadata": {},
   "source": [
    "**Solution 6: Theme park ride**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7ff63e43",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "height_cm = 130\n",
    "age = 6\n",
    "with_adult = True\n",
    "\n",
    "if height_cm >= 120 and (age >= 8 or with_adult):\n",
    "    print(\"Allowed\")\n",
    "else:\n",
    "    print(\"Not allowed\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2f9a3545",
   "metadata": {},
   "source": [
    "**Solution 7: Password attempts**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e1c4a460",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "secret = \"python123\"\n",
    "attempts = 0\n",
    "correct = False\n",
    "\n",
    "while attempts < 3 and not correct:\n",
    "    guess = input(\"Enter the password: \")\n",
    "    attempts += 1\n",
    "    if guess == secret:\n",
    "        correct = True\n",
    "        print(\"Access granted\")\n",
    "    else:\n",
    "        print(\"Wrong password.\", 3 - attempts, \"attempts left.\")\n",
    "\n",
    "if not correct:\n",
    "    print(\"Account locked\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5482e879",
   "metadata": {},
   "source": [
    "**Solution 8: Times table**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ae284693",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "number = 7\n",
    "\n",
    "for i in range(1, 13):\n",
    "    print(f\"{i} x {number} = {i * number}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5cfeca64",
   "metadata": {},
   "source": [
    "**Solution 9: Totals and counting**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1f51f160",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "n = 10\n",
    "total = 0\n",
    "for i in range(1, n + 1):     # n + 1 because the stop value is excluded\n",
    "    total += i\n",
    "\n",
    "word = \"programming\"\n",
    "vowel_count = 0\n",
    "for letter in word:\n",
    "    if letter in \"aeiou\":\n",
    "        vowel_count += 1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f511962c",
   "metadata": {},
   "source": [
    "**Solution 10: Exam marks**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ff871277",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "marks = [72, 58, 91, 35, 64, 80]\n",
    "\n",
    "total = sum(marks)\n",
    "average = total / len(marks)\n",
    "highest = max(marks)\n",
    "\n",
    "pass_count = 0\n",
    "for mark in marks:\n",
    "    if mark >= 40:\n",
    "        pass_count += 1\n",
    "\n",
    "marks.append(55)\n",
    "print(\"Number of marks now:\", len(marks))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "37cbb3cd",
   "metadata": {},
   "source": [
    "**Solution 11: Functions**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "535a8690",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "def ticket_price(age):\n",
    "    if age < 5:\n",
    "        return 0\n",
    "    elif age <= 17:\n",
    "        return 6\n",
    "    elif age <= 64:\n",
    "        return 10\n",
    "    else:\n",
    "        return 7\n",
    "\n",
    "\n",
    "def can_ride(height_cm, age, with_adult):\n",
    "    return height_cm >= 120 and (age >= 8 or with_adult)\n",
    "\n",
    "\n",
    "def is_leap_year(year):\n",
    "    return (year % 4 == 0 and year % 100 != 0) or year % 400 == 0"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3650ac86",
   "metadata": {},
   "source": [
    "**Solution 12: Fix the bugs**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d7515c2c",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "# Bug A: SyntaxError. The if line was missing its colon.\n",
    "name = \"Sam\"\n",
    "if name == \"Sam\":\n",
    "    print(\"Hi Sam\")\n",
    "\n",
    "# Bug B: TypeError. input() gives text, so convert it with int() before adding.\n",
    "age = int(input(\"Age: \"))\n",
    "print(\"Next year you will be \" + str(age + 1))     # str() needed to join with text\n",
    "# or, more neatly: print(f\"Next year you will be {age + 1}\")\n",
    "\n",
    "# Bug C: IndentationError, plus a logic error. The loop body needs indenting,\n",
    "# and range(1, 5) stops at 4, so it must be range(1, 6) to include 5.\n",
    "total = 0\n",
    "for i in range(1, 6):\n",
    "    total = total + i\n",
    "print(total)\n",
    "\n",
    "# Bug D: IndexError. A list of 3 items has indexes 0, 1 and 2.\n",
    "marks = [50, 60, 70]\n",
    "print(marks[2])      # or marks[-1], which always gives the last item"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04aac2d4",
   "metadata": {},
   "source": [
    "**Solution 13: Number guessing game**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6064083e",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "import random\n",
    "\n",
    "secret = random.randint(1, 20)\n",
    "guess = 0\n",
    "guesses = 0\n",
    "\n",
    "print(\"I am thinking of a number between 1 and 20.\")\n",
    "\n",
    "while guess != secret:\n",
    "    guess = int(input(\"Your guess: \"))\n",
    "    guesses += 1\n",
    "    if guess < secret:\n",
    "        print(\"Too low\")\n",
    "    elif guess > secret:\n",
    "        print(\"Too high\")\n",
    "    else:\n",
    "        print(f\"Correct! It took you {guesses} guesses.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0ad23e8f",
   "metadata": {},
   "source": [
    "**Stretch 1 (limit of 6 guesses), one possible approach**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a3eebbe0",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    },
    "tags": [
     "solution"
    ]
   },
   "outputs": [],
   "source": [
    "import random\n",
    "\n",
    "secret = random.randint(1, 20)\n",
    "guess = 0\n",
    "guesses = 0\n",
    "max_guesses = 6\n",
    "\n",
    "print(\"I am thinking of a number between 1 and 20. You have 6 guesses.\")\n",
    "\n",
    "while guess != secret and guesses < max_guesses:\n",
    "    guess = int(input(\"Your guess: \"))\n",
    "    guesses += 1\n",
    "    if guess < secret:\n",
    "        print(\"Too low\")\n",
    "    elif guess > secret:\n",
    "        print(\"Too high\")\n",
    "    else:\n",
    "        print(f\"Correct! It took you {guesses} guesses.\")\n",
    "\n",
    "if guess != secret:\n",
    "    print(f\"Out of guesses. The number was {secret}.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c80b3a54",
   "metadata": {},
   "source": [
    "---\n",
    "*End of notebook. Well done for getting this far.*"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
