Created
January 1, 2021 04:44
-
-
Save lordpretzel/55bfee9a0655ea8d12b0705411ba68be to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "# Python Language Intro (Part 3)" | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "## Agenda\n\n1. Language overview\n2. White space sensitivity\n3. Basic Types and Operations\n4. Statements & Control Structures\n5. Functions\n6. OOP (Classes, Methods, etc.)\n7. Immutable Sequence Types (Strings, Ranges, Tuples)\n8. Mutable data structures: Lists, Sets, Dictionaries" | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "# by default, only the result of the last expression in a cell is displayed after evaluation.\n# the following forces display of *all* self-standing expressions in a cell.\n\nfrom IPython.core.interactiveshell import InteractiveShell\nInteractiveShell.ast_node_interactivity = \"all\"", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "## 7. Immutable Sequence Types: Strings, Ranges, Tuples" | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "Recall: All immutable sequences support the [common sequence operations](https://docs.python.org/3/library/stdtypes.html#common-sequence-operations). For many sequence types, there are constructors that allow us to create them from other sequence types." | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "### Strings" | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "s = 'hello'", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"state": "normal" | |
}, | |
"cell_type": "code", | |
"source": "s[0]\ns[1:3]\n'e' in s\ns + s", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"state": "normal" | |
}, | |
"cell_type": "code", | |
"source": "s[0] = 'j'", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"state": "normal" | |
}, | |
"cell_type": "code", | |
"source": "t = s\ns += s # not mutating the string!", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"state": "normal" | |
}, | |
"cell_type": "code", | |
"source": "t\ns", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "### Ranges" | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "r = range(150, 10, -8)", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"state": "normal" | |
}, | |
"cell_type": "code", | |
"source": "r[2]\nr[3:7]\n94 in r", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "### Tuples" | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "()", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "(1, 2, 3)", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "('a', 10, False, 'hello')", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "tuple(range(10))", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "tuple('hello')", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"state": "normal" | |
}, | |
"cell_type": "code", | |
"source": "t = tuple('hello')\n'e' in t\nt[::-1]\nt * 3", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "## 8. Mutable data structures: Lists, Sets, Dicts" | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "### Lists" | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "This list supports the [mutable sequence operations](https://docs.python.org/3/library/stdtypes.html#mutable-sequence-types) in addition to the [common sequence operations](https://docs.python.org/3/library/stdtypes.html#common-sequence-operations)." | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l = [1, 2, 1, 1, 2, 3, 3, 1]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "len(l)", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l[5]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l[1:-1]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l + ['hello', 'world']", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l # `+` does *not* mutate the list!", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l * 3", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "sum = 0\nfor x in l:\n sum += x\nsum", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "#### Mutable list operations" | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l = list('hell')", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l.append('o')", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l.append(' there')", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "del l[-1]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l.extend(' there')", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l[2:7]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "del l[2:7]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "l[:]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "#### List comprehensions" | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "[x for x in range(10)]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "[2*x+1 for x in range(10)] # odd numbers", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "adjs = ('hot', 'blue', 'quick')\nnouns = ('table', 'fox', 'sky')\n[adj + ' ' + noun for adj in adjs for noun in nouns]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "# pythagorean triples\nn = 50\n[(a,b,c) for a in range(1,n) \n for b in range(a,n) \n for c in range(b,n) \n if a**2 + b**2 == c**2]", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "### Sets" | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "A [set](https://docs.python.org/3.7/library/stdtypes.html#set-types-set-frozenset) is a data structure that represents an *unordered* collection of unique objects (like the mathematical set). " | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "s = {1, 2, 1, 1, 2, 3, 3, 1}", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "s", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "t = {2, 3, 4, 5}", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "s.union(t)", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "s.difference(t)", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "s.intersection(t)", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "### Dicts" | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "A [dictionary](https://docs.python.org/3/library/stdtypes.html#mapping-types-dict) is a data structure that contains a set of unique key → value mappings. " | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "d = {\n 'Superman': 'Clark Kent',\n 'Batman': 'Bruce Wayne',\n 'Spiderman': 'Peter Parker',\n 'Ironman': 'Tony Stark'\n}", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "d['Ironman']", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "d['Ironman'] = 'James Rhodes'", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "d", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal" | |
}, | |
"cell_type": "markdown", | |
"source": "#### Dictionary comprehensions" | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "{e:2**e for e in range(0,100,10)}", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "{x:y for x in range(3) for y in range(10)}", | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"state": "normal", | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "sentence = 'a man a plan a canal panama'\n{w:w[::-1] for w in sentence.split()}", | |
"execution_count": null, | |
"outputs": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3", | |
"language": "python" | |
}, | |
"language_info": { | |
"name": "python", | |
"version": "3.7.3", | |
"mimetype": "text/x-python", | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"pygments_lexer": "ipython3", | |
"nbconvert_exporter": "python", | |
"file_extension": ".py" | |
}, | |
"mimir": { | |
"project_id": "a76b0e47-b067-496f-bf4a-a4f0d87f58d9", | |
"last_submission_id": "", | |
"data": {} | |
}, | |
"varInspector": { | |
"window_display": false, | |
"cols": { | |
"lenName": 16, | |
"lenType": 16, | |
"lenVar": 40 | |
}, | |
"kernels_config": { | |
"python": { | |
"library": "var_list.py", | |
"delete_cmd_prefix": "del ", | |
"delete_cmd_postfix": "", | |
"varRefreshCmd": "print(var_dic_list())" | |
}, | |
"r": { | |
"library": "var_list.r", | |
"delete_cmd_prefix": "rm(", | |
"delete_cmd_postfix": ") ", | |
"varRefreshCmd": "cat(var_dic_list()) " | |
} | |
}, | |
"types_to_exclude": [ | |
"module", | |
"function", | |
"builtin_function_or_method", | |
"instance", | |
"_Feature" | |
] | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment