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
228 changes: 200 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": 1,
"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,23 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<built-in method title of str object at 0x70fb02b41670>\n",
"<built-in method title of str object at 0x70fb02b40ab0>\n",
"<built-in method title of str object at 0x70fb0217b7b0>\n"
]
}
],
"source": [
"# Hint: Use print(f\"{variable}\")"
"# Hint: Use print(f\"{variable}\")\n",
"for character in cast: \n",
" print(f\"{character.title}\")"
]
},
{
Expand All @@ -63,9 +85,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 Down Expand Up @@ -107,9 +140,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 +174,30 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"odysseus\n",
"neoptolemus\n",
"philoctetes\n",
"antigone\n",
"antigone was played by a great actor!\n"
]
}
],
"source": [
"cast = [\"odysseus\", \"neoptolemus\", \"philoctetes\"]\n",
"cast = [\"odysseus\", \"neoptolemus\", \"philoctetes\", \"antigone\",]\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 +218,20 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 6,
"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 +246,41 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 18,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[0, 2, 4, 6, 8]"
]
},
"execution_count": 18,
"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": 7,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
]
},
"execution_count": 7,
"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 +297,20 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[2, 3, 4, 5, 6]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[value+2 for value in range(0, 5)]"
]
Expand All @@ -229,9 +333,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 22,
"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",
"\n",
Expand Down Expand Up @@ -267,6 +381,15 @@
"If you specify a slice without any indexes, you'll get a copy of the list."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"new_list = numbers[:]"
]
},
{
"cell_type": "markdown",
"metadata": {},
Expand All @@ -278,9 +401,21 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 21,
"metadata": {},
"outputs": [],
"outputs": [
{
"ename": "TypeError",
"evalue": "'tuple' object does not support item assignment",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[21], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m my_tuple \u001b[38;5;241m=\u001b[39m (\u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m2\u001b[39m, \u001b[38;5;241m3\u001b[39m)\n\u001b[0;32m----> 3\u001b[0m \u001b[43mmy_tuple\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m5\u001b[39m\n",
"\u001b[0;31mTypeError\u001b[0m: 'tuple' object does not support item assignment"
]
}
],
"source": [
"my_tuple = (1, 2, 3)\n",
"\n",
Expand All @@ -304,11 +439,48 @@
"\n",
"Matthes 2023, p. 67, Exercise 4-13."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Original Menu:\n",
"sushi\n",
"dumplings\n",
"rice\n",
"soup\n",
"salad\n",
"\n",
"Updated Menu:\n",
"sushi\n",
"dumplings\n",
"rice\n",
"chicken nuggets\n",
"ice cream\n"
]
}
],
"source": [
"foods = ('sushi', 'dumplings', 'rice', 'soup', 'salad')\n",
"print ('Original Menu:')\n",
"for food in foods:\n",
" print(food)\n",
"\n",
"foods = ('sushi', 'dumplings', 'rice', 'chicken nuggets', 'ice cream')\n",
"print(\"\\nUpdated Menu:\")\n",
"for food in foods:\n",
" print(food)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
Expand All @@ -322,7 +494,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.7"
"version": "3.12.1"
}
},
"nbformat": 4,
Expand Down