{ "cells": [ { "cell_type": "code", "execution_count": 3, "id": "e9bea672", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# This is a cell\n", "# It can contain code or formatted text (Markdown)\n", "\n", "2+2\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "3f3a0921", "metadata": {}, "outputs": [], "source": [ "total = 2 + 2" ] }, { "cell_type": "code", "execution_count": 5, "id": "69727fa2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4\n" ] } ], "source": [ "# But what happens if we restart the kernel?\n", "print(total)" ] }, { "cell_type": "markdown", "id": "2e52f15f", "metadata": {}, "source": [ "# Heading 1\n", "## heading 2\n", "### heading 3\n", "\n", "Here is a list of bullets\n", "* one\n", "* two\n", "* three\n", "\n", "This works too:\n", "- item1\n", "- item2\n", "- item3\n", "\n", "Here is **bold**, *italics*\n", "\n", "Here is a [link](https://www.google.com) to google.\n", "\n", "\n", "A simple table:\n", "\n", "|Runner| 5km |\n", "|--------|--------|\n", "|John | 29m 59s |\n", "|Laney | 1h 59m 35s |\n", "|Felix | 2h 45m 18s |\n", "\n", "You can even insert an image:\n", "\n", "\n", "![asteroid during lecture](asteroid.png)" ] }, { "cell_type": "markdown", "id": "ed447666", "metadata": {}, "source": [ "# Embedding a simple visualization\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "50db80df", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "plt.bar('John', 30)\n", "plt.bar('Laney', 119)\n", "plt.bar('Felix', 165)\n", "plt.grid(axis='y')\n", "plt.ylabel('minutes')\n", "plt.title('5 km Running Time')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "79ae4707", "metadata": {}, "source": [ "### Let's learn about strings" ] }, { "cell_type": "code", "execution_count": 12, "id": "11484af0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'e'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Strings are immutable - they can't be changed\n", "\n", "\"hello\"[1]" ] }, { "cell_type": "code", "execution_count": 13, "id": "68bb860d", "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "'str' 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)", "Input \u001b[0;32mIn [13]\u001b[0m, in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhello\u001b[39m\u001b[38;5;124m\"\u001b[39m[\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mu\u001b[39m\u001b[38;5;124m'\u001b[39m\n", "\u001b[0;31mTypeError\u001b[0m: 'str' object does not support item assignment" ] } ], "source": [ "\"hello\"[1] = 'u'" ] }, { "cell_type": "code", "execution_count": 14, "id": "57bd486b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hullo'" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"hello\".replace(\"e\", \"u\")" ] }, { "cell_type": "code", "execution_count": 21, "id": "3f4cc889", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hullo'" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "msg = \"hello\"\n", "msg.replace(\"e\", \"u\") # This produced a NEW string that wasn't assigned to anything\n", "msg # The original string is unchanged\n", "\n", "# but this makes it permanent\n", "msg = msg.replace(\"e\", \"u\")\n", "msg" ] }, { "cell_type": "code", "execution_count": 22, "id": "c76aa9ec", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Hullo'" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Transformations\n", "msg.upper()\n", "msg.lower()\n", "msg.capitalize()" ] }, { "cell_type": "code", "execution_count": 23, "id": "4ddd7c8f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'ul'" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# slicing\n", "\n", "msg[1:3]" ] }, { "cell_type": "code", "execution_count": 24, "id": "352f7004", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'huLLo'" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Replacing multiple occurrences\n", "msg.replace(\"l\", \"L\")\n" ] }, { "cell_type": "code", "execution_count": 25, "id": "66f2aec6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hullllllo'" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "msg.replace(\"ll\", \"llllll\")" ] }, { "cell_type": "code", "execution_count": 26, "id": "16561707", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'huo'" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# remove L's\n", "msg.replace(\"l\", \"\")" ] }, { "cell_type": "code", "execution_count": 32, "id": "3247792e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Isnt this easy Fun easy and practical'" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Removing punctuation - method 1: \n", "# simpler but you might miss some\n", "phrase = \"Isn't this easy? Fun, easy, and practical!!\"\n", "punctuation = \"'?,!.;\"\n", "for p in punctuation:\n", " phrase = phrase.replace(p,\"\")\n", "phrase" ] }, { "cell_type": "code", "execution_count": 34, "id": "5f9f4b55", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Isnt this easy Fun easy and practical'" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# method 2\n", "# better coverage but a bit more verbose\n", "phrase = \"Isn't this easy? Fun, easy, and practical!!\"\n", "new_phrase = \"\"\n", "for letter in phrase:\n", " if letter.isalpha() or letter==' ':\n", " new_phrase += letter\n", "new_phrase" ] }, { "cell_type": "code", "execution_count": 39, "id": "03a73a8d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Isnt this easy Fun easy and practical'" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# method3 - complicated / not obvious but fast and concise\n", "import string\n", "phrase.translate(str.maketrans('', '', string.punctuation))\n" ] }, { "cell_type": "code", "execution_count": 53, "id": "d8ab4b1b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Joe's favorite number is 3.14159\n", "Joe's favorite number is 3.14\n", "Joe's favorite number is 3.142\n", "Joe's favorite number is 3.1416\n", "Two plus two is 4\n" ] } ], "source": [ "## Formatted printing - a few examples\n", "\n", "pi = 3.14159\n", "name = 'Joe'\n", "\n", "print(f\"{name}'s favorite number is {pi}\")\n", "print(f\"{name}'s favorite number is {pi:.2f}\")\n", "print(f\"{name}'s favorite number is {pi:.3f}\")\n", "print(f\"{name}'s favorite number is {pi:.4f}\")\n", "\n", "print(f\"{'A'})\n" ] }, { "cell_type": "code", "execution_count": null, "id": "c1ae956d", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.9" } }, "nbformat": 4, "nbformat_minor": 5 }