Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
269 changes: 241 additions & 28 deletions for-loops.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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",
Expand All @@ -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\")"
]
},
{
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -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!\")"
]
},
{
Expand All @@ -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}\")"
Expand All @@ -175,19 +255,41 @@
},
{
"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))"
]
},
{
"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))"
Expand All @@ -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)]"
]
Expand All @@ -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",
Expand Down Expand Up @@ -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"
},
Expand All @@ -322,7 +535,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.7"
"version": "3.12.1"
}
},
"nbformat": 4,
Expand Down