From 4c80789dc0fb0037c9d147cd13d323c8577f72b8 Mon Sep 17 00:00:00 2001 From: miagia27 Date: Sun, 2 Feb 2025 23:08:54 +0000 Subject: [PATCH] for-loops.ipynb --- for-loops.ipynb | 269 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 241 insertions(+), 28 deletions(-) diff --git a/for-loops.ipynb b/for-loops.ipynb index d8dc735..54f5a30 100644 --- a/for-loops.ipynb +++ b/for-loops.ipynb @@ -22,9 +22,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "odysseus\n", + "neoptolemus\n", + "philoctetes\n" + ] + } + ], "source": [ "cast = [\"odysseus\", \"neoptolemus\", \"philoctetes\"]\n", "\n", @@ -38,7 +48,7 @@ "source": [ "Let's break this down:\n", "\n", - "1. `cast = [\"Odysseus\", \"Neoptolemus\", \"Philoctetes\"]` declares a variable and assigns to it the list containing the `str`-names of the main cast of Sophocles' _Philoctetes_.\n", + "1. `cast = [\"odysseus\", \"neoptolemus\", \"philoctetes\"]` declares a variable and assigns to it the list containing the `str`-names of the main cast of Sophocles' _Philoctetes_.\n", "2. `for character in cast:` opens a `for` loop, assigning each item in `cast` to the variable `character` — which is only defined inside the loop. The name `character` is unimportant — you could us any valid Pyhon variable. But it's good practice to use names that are descriptive of the contents.\n", "3. ` print(character)` prints the `str`-name of each `character`. Notice the indentation!\n", "\n", @@ -47,11 +57,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Odysseus text text text\n", + "Neoptolemus text text text\n", + "Philoctetes text text text\n" + ] + } + ], "source": [ - "# Hint: Use print(f\"{variable}\")" + "# Hint: Use print(f\"{variable}\")\n", + "\n", + "for character in cast:\n", + " print(f\"{character.title()} text text text\")" ] }, { @@ -63,9 +86,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "odysseus\n", + "neoptolemus\n", + "philoctetes\n", + "And now the loop is done!\n" + ] + } + ], "source": [ "cast = [\"odysseus\", \"neoptolemus\", \"philoctetes\"]\n", "\n", @@ -86,9 +120,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "IndentationError", + "evalue": "expected an indented block after 'for' statement on line 3 (3799840020.py, line 4)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m Cell \u001b[0;32mIn[4], line 4\u001b[0;36m\u001b[0m\n\u001b[0;31m print(character)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m expected an indented block after 'for' statement on line 3\n" + ] + } + ], "source": [ "cast = [\"odysseus\", \"neoptolemus\", \"philoctetes\"]\n", "\n", @@ -107,9 +150,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "odysseus\n", + "And now the loop is done!\n", + "neoptolemus\n", + "And now the loop is done!\n", + "philoctetes\n", + "And now the loop is done!\n" + ] + } + ], "source": [ "cast = [\"odysseus\", \"neoptolemus\", \"philoctetes\"]\n", "\n", @@ -128,16 +184,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "odysseus\n", + "neoptolemus\n", + "philoctetes\n", + "philoctetes was played by a great actor!\n" + ] + } + ], "source": [ "cast = [\"odysseus\", \"neoptolemus\", \"philoctetes\"]\n", "\n", + "last_actor_seen = None\n", "for character in cast:\n", + " last_actor_seen = character\n", " print(character)\n", "\n", - "print(f\"{character} was played by a great actor!\")" + "print(f\"{last_actor_seen} was played by a great actor!\")" ] }, { @@ -158,9 +227,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 is greater than 0\n", + "2 is greater than 1\n", + "3 is greater than 2\n", + "4 is greater than 3\n" + ] + } + ], "source": [ "for value in range(1, 5):\n", " print(f\"{value} is greater than {value - 1}\")" @@ -175,9 +255,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[0, 2, 4, 6, 8]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# We can use the third argument to adjust the size of each step\n", "list(range(0, 10, 2))" @@ -185,9 +276,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Or we can pass `range()` just one argument, and it will start from 0:\n", "list(range(10))" @@ -204,9 +306,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[2, 3, 4, 5, 6]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "[value+2 for value in range(0, 5)]" ] @@ -229,11 +342,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2, 3, 4, 5, 6, 7]\n", + "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]\n", + "[15, 16, 17, 18, 19]\n" + ] + } + ], "source": [ - "numbers = list(range(0, 20))\n", + "numbers = list(range(0, 20)) - right is exclusive so this goes from 0 to 19\n", "\n", "print(numbers[2:8])\n", "\n", @@ -304,11 +427,101 @@ "\n", "Matthes 2023, p. 67, Exercise 4-13." ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('eggs', 'pancakes', 'waffles', 'chicken fingers', 'mac n cheese')" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_tuple = ('eggs', 'pancakes', 'waffles', 'chicken fingers', 'mac n cheese')\n", + "my_tuple" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "eggs\n", + "pancakes\n", + "waffles\n", + "chicken fingers\n", + "mac n cheese\n" + ] + } + ], + "source": [ + "for food in my_tuple:\n", + " print(food)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'tuple' object has no attribute 'append'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[17], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmy_tuple\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mappend\u001b[49m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mburger\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhot dogs\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", + "\u001b[0;31mAttributeError\u001b[0m: 'tuple' object has no attribute 'append'" + ] + } + ], + "source": [ + "my_tuple.append('burger', 'hot dogs')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Modified food:\n", + "burger\n", + "hot dogs\n", + "waffles\n", + "chicken fingers\n", + "mac n cheese\n" + ] + } + ], + "source": [ + "my_tuple = ('burger', 'hot dogs', 'waffles', 'chicken fingers', 'mac n cheese')\n", + "print(\"\\nModified food:\")\n", + "for food in my_tuple:\n", + " print(food)\n" + ] } ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -322,7 +535,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.7" + "version": "3.12.1" } }, "nbformat": 4,