{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Jupyter Notebook: Python Advanced" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Jupyter Notebook Explanation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "blah blah" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hello world\n" ] } ], "source": [ "print('hello world')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "answer = 42" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "42\n" ] } ], "source": [ "print(answer)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Python Basics Recap" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "i = 42" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(i)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "i = '42'" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "str" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(i)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def foo():\n", " print('hello')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "function" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(foo)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "foo = i" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "42\n" ] } ], "source": [ "print(foo)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "class Foo:\n", " def foo(self):\n", " print('foo hier')" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "f = Foo()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "foo hier\n" ] } ], "source": [ "f.foo()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "__main__.Foo" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(f)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "type" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(Foo)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['__class__',\n", " '__delattr__',\n", " '__dict__',\n", " '__dir__',\n", " '__doc__',\n", " '__eq__',\n", " '__format__',\n", " '__ge__',\n", " '__getattribute__',\n", " '__gt__',\n", " '__hash__',\n", " '__init__',\n", " '__init_subclass__',\n", " '__le__',\n", " '__lt__',\n", " '__module__',\n", " '__ne__',\n", " '__new__',\n", " '__reduce__',\n", " '__reduce_ex__',\n", " '__repr__',\n", " '__setattr__',\n", " '__sizeof__',\n", " '__str__',\n", " '__subclasshook__',\n", " '__weakref__',\n", " 'foo']" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir(Foo)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data Types" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Integers and Floats" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "i = 42" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(i)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "i = 2**64 - 1" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "18446744073709551615" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "i += 1" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "18446744073709551616" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(i)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "if i == 2**64-1:\n", " print('jessas!')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "i = 2" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "f = 42.666" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "float" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(f)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "44.666" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i + f" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(i)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "NotImplemented" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i.__add__(f)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "44.666" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f.__add__(i)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-40.666" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i - f" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "NotImplemented" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i.__sub__(f)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-40.666" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f.__rsub__(i)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "10**1000" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Datatype Conversions" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "class Foo:\n", " def foo(self):\n", " print('foo hier')" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "f = Foo()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "__main__.Foo" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(f)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "s = '42'" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "str" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(s)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "i = int(s)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "42" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'42'" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "str(i)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(i)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "42.666" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "float('42.666')" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " invalid literal for int() with base 10: 'abc'\n" ] } ], "source": [ "try:\n", " int('abc')\n", "except ValueError as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2748" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "int('abc', 16)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "42" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "int(42.666)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " invalid literal for int() with base 10: '42.666'\n" ] } ], "source": [ "try:\n", " int('42.666')\n", "except ValueError as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "s = 'hello'" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "s += ' world'" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hello world'" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "42" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "42\n" ] } ], "source": [ "print(i)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "__main__.Foo" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(f)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "print_s = str(i)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'42'" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_s" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "42\n" ] } ], "source": [ "print(print_s)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'42'" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "str(i)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'42'" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i.__str__()" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "class Person:\n", " def __init__(self, firstname, lastname):\n", " self.firstname = firstname\n", " self.lastname = lastname" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "joerg = Person('Joerg', 'Faschingbauer')" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "__main__.Person" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(joerg)" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "<__main__.Person object at 0x7f0b165fdf00>\n" ] } ], "source": [ "print(joerg)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [], "source": [ "class Person:\n", " def __init__(self, firstname, lastname):\n", " self.firstname = firstname\n", " self.lastname = lastname\n", " def __str__(self):\n", " return f'{self.firstname} {self.lastname}'" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "joerg = Person('Joerg', 'Faschingbauer')" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Joerg Faschingbauer\n" ] } ], "source": [ "print(joerg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Strings: String Methods, Docstrings, ..." ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [], "source": [ "s = 'hello'" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hello'" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "s = \"hello\"" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hello'" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [], "source": [ "s = \"hello \\\"world\\\"\"" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hello \"world\"'" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "s = 'hello \"world\"'" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hello \"world\"'" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "dos_path = \"C:\\Dokumente\\neues zeug\"" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C:\\Dokumente\n", "eues zeug\n" ] } ], "source": [ "print(dos_path)" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [], "source": [ "dos_path = \"C:\\\\Dokumente\\\\neues zeug\"" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C:\\Dokumente\\neues zeug\n" ] } ], "source": [ "print(dos_path)" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [], "source": [ "dos_path = r\"C:\\Dokumente\\neues zeug\"" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C:\\Dokumente\\neues zeug\n" ] } ], "source": [ "print(dos_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Docstrings, Multiline Strings" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [], "source": [ "s = '''erste zeile\n", "zweite zeile\n", "'''" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "erste zeile\n", "zweite zeile\n", "\n" ] } ], "source": [ "print(s)" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "def foo():\n", " '''\n", " Das ist eine Funktion, von der\n", " keiner weiss, was sie tut, weil sie keinen\n", " vernuenftigen Namen hat.\n", " '''\n", " return 666" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "foo" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'\\n Das ist eine Funktion, von der\\n keiner weiss, was sie tut, weil sie keinen\\n vernuenftigen Namen hat.\\n '" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "foo.__doc__" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function foo in module __main__:\n", "\n", "foo()\n", " Das ist eine Funktion, von der\n", " keiner weiss, was sie tut, weil sie keinen\n", " vernuenftigen Namen hat.\n", "\n" ] } ], "source": [ "help(foo)" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [], "source": [ "class Foo:\n", " '''\n", " Das ist eine Klasse, von der\n", " keiner weiss, was sie tut, weil sie keinen\n", " vernuenftigen Namen hat.'''\n", " \n", " def foo(self):\n", " '''\n", " Das ist eine Funktion, von der\n", " keiner weiss, was sie tut, weil sie keinen\n", " vernuenftigen Namen hat.'''\n", " return 666" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on class Foo in module __main__:\n", "\n", "class Foo(builtins.object)\n", " | Das ist eine Klasse, von der\n", " | keiner weiss, was sie tut, weil sie keinen\n", " | vernuenftigen Namen hat.\n", " | \n", " | Methods defined here:\n", " | \n", " | foo(self)\n", " | Das ist eine Funktion, von der\n", " | keiner weiss, was sie tut, weil sie keinen\n", " | vernuenftigen Namen hat.\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors defined here:\n", " | \n", " | __dict__\n", " | dictionary for instance variables (if defined)\n", " | \n", " | __weakref__\n", " | list of weak references to the object (if defined)\n", "\n" ] } ], "source": [ "help(Foo)" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [], "source": [ "s = 'hello'\n", "s1 = 'world'" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hello world'" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s + ' ' + s1" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " '<' not supported between instances of 'int' and 'str'\n" ] } ], "source": [ "try:\n", " 42 < s\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [], "source": [ "s = 'mississippi'" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.count('ss')" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.find('ss')" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.find('ss', 3)" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-1" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.find('xxx')" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.index('ss')" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " substring not found\n" ] } ], "source": [ "try:\n", " s.index('xxx')\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "' mississippi '" ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.center(50)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Python Documentation Overview: https://docs.python.org/3/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "``class str(object='')``" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "''" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "str()" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "''" ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" } ], "source": [ "str('')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "``class str(object=b'', encoding='utf-8', errors='strict')``" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Jörg'" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "str(b'J\\xf6rg', encoding='iso-8859-1')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compound Datatypes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### List" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [], "source": [ "l = [1,2,3]" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [], "source": [ "l.append(4)" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3, 4]" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [], "source": [ "l.append('five')" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3, 4, 'five']" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [], "source": [ "del l[0]" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[2, 3, 4, 'five']" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " list assignment index out of range\n" ] } ], "source": [ "try:\n", " del l[100]\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[2, 3, 4, 'five']" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l.pop(1)" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[2, 4, 'five']" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[2, 4, 'five']" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [], "source": [ "l = [1,2,3,4,5]" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[2, 3, 4]" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l[1:4]" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [], "source": [ "l[1:4] = []" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 5]" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l[1:1]" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [], "source": [ "l[1:1] = [2,3,4]" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3, 4, 5]" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [], "source": [ "l[1:4] = ['zwei', 'drei']" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 'zwei', 'drei', 5]" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [], "source": [ "l[0:0] = [-2, -1, 0]" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[-2, -1, 0, 1, 'zwei', 'drei', 5]" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [], "source": [ "l.insert(0, -3)" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[-3, -2, -1, 0, 1, 'zwei', 'drei', 5]" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'zwei' in l" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "5 in l" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "666 in l" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Set" ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [], "source": [ "s = {1,2,3,4}" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 in s" ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [], "source": [ "s.add(666)" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1, 2, 3, 4, 666}" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [], "source": [ "s.remove(2)" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1, 3, 4, 666}" ] }, "execution_count": 138, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [], "source": [ "s1 = {1, 2, 3, 4}" ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [], "source": [ "s2 = {3, 4, 5, 6}" ] }, { "cell_type": "code", "execution_count": 141, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1, 2, 3, 4, 5, 6}" ] }, "execution_count": 141, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s1 | s2" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1, 2}" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s1 - s2" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1, 2, 5, 6}" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s1 ^ s2" ] }, { "cell_type": "code", "execution_count": 144, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{3, 4}" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s1 & s2" ] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['__and__',\n", " '__class__',\n", " '__class_getitem__',\n", " '__contains__',\n", " '__delattr__',\n", " '__dir__',\n", " '__doc__',\n", " '__eq__',\n", " '__format__',\n", " '__ge__',\n", " '__getattribute__',\n", " '__gt__',\n", " '__hash__',\n", " '__iand__',\n", " '__init__',\n", " '__init_subclass__',\n", " '__ior__',\n", " '__isub__',\n", " '__iter__',\n", " '__ixor__',\n", " '__le__',\n", " '__len__',\n", " '__lt__',\n", " '__ne__',\n", " '__new__',\n", " '__or__',\n", " '__rand__',\n", " '__reduce__',\n", " '__reduce_ex__',\n", " '__repr__',\n", " '__ror__',\n", " '__rsub__',\n", " '__rxor__',\n", " '__setattr__',\n", " '__sizeof__',\n", " '__str__',\n", " '__sub__',\n", " '__subclasshook__',\n", " '__xor__',\n", " 'add',\n", " 'clear',\n", " 'copy',\n", " 'difference',\n", " 'difference_update',\n", " 'discard',\n", " 'intersection',\n", " 'intersection_update',\n", " 'isdisjoint',\n", " 'issubset',\n", " 'issuperset',\n", " 'pop',\n", " 'remove',\n", " 'symmetric_difference',\n", " 'symmetric_difference_update',\n", " 'union',\n", " 'update']" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir(s1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Dictionary" ] }, { "cell_type": "code", "execution_count": 146, "metadata": {}, "outputs": [], "source": [ "d = {1: 'eins', 2: 'zwei'}" ] }, { "cell_type": "code", "execution_count": 147, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict" ] }, "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(d)" ] }, { "cell_type": "code", "execution_count": 148, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'eins'" ] }, "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d[1]" ] }, { "cell_type": "code", "execution_count": 149, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 3\n" ] } ], "source": [ "try:\n", " d[3]\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 150, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 150, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 in d" ] }, { "cell_type": "code", "execution_count": 151, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 in d" ] }, { "cell_type": "code", "execution_count": 152, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'zwei'" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.get(2)" ] }, { "cell_type": "code", "execution_count": 153, "metadata": {}, "outputs": [], "source": [ "v = d.get(2)" ] }, { "cell_type": "code", "execution_count": 154, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'zwei'" ] }, "execution_count": 154, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v" ] }, { "cell_type": "code", "execution_count": 155, "metadata": {}, "outputs": [], "source": [ "v = d.get(3)" ] }, { "cell_type": "code", "execution_count": 156, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "None\n" ] } ], "source": [ "print(v)" ] }, { "cell_type": "code", "execution_count": 157, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "NoneType" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(v)" ] }, { "cell_type": "code", "execution_count": 158, "metadata": {}, "outputs": [], "source": [ "if d.get(3) is None:\n", " v = 'drei'\n", "else:\n", " v = d.get(3)" ] }, { "cell_type": "code", "execution_count": 159, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "drei\n" ] } ], "source": [ "print(v)" ] }, { "cell_type": "code", "execution_count": 160, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "drei\n" ] } ], "source": [ "v = d.get(3, 'drei')\n", "print(v)" ] }, { "cell_type": "code", "execution_count": 161, "metadata": {}, "outputs": [], "source": [ "d[3] = 'drei'" ] }, { "cell_type": "code", "execution_count": 162, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'drei'" ] }, "execution_count": 162, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d[3]" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [], "source": [ "if 4 in d:\n", " v = d[4]\n", "else:\n", " d[4] = 'vier'\n", " v = d[4]" ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fuenf\n" ] } ], "source": [ "v = d.setdefault(5, 'fuenf')\n", "print(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Iteration" ] }, { "cell_type": "code", "execution_count": 165, "metadata": {}, "outputs": [], "source": [ "l = [1, 2, 3, 4]" ] }, { "cell_type": "code", "execution_count": 166, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n", "4\n" ] } ], "source": [ "for element in l:\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 167, "metadata": {}, "outputs": [], "source": [ "s = {1,2,3,4}" ] }, { "cell_type": "code", "execution_count": 168, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n", "4\n" ] } ], "source": [ "for element in s:\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 169, "metadata": {}, "outputs": [], "source": [ "d = {1:'eins', 2:'zwei', 3: 'drei'}" ] }, { "cell_type": "code", "execution_count": 170, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n" ] } ], "source": [ "for element in d:\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 171, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n" ] } ], "source": [ "for element in d.keys():\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 172, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "eins\n", "zwei\n", "drei\n" ] } ], "source": [ "for element in d.values():\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 173, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1, 'eins')\n", "(2, 'zwei')\n", "(3, 'drei')\n" ] } ], "source": [ "for element in d.items():\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 174, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 eins\n", "2 zwei\n", "3 drei\n" ] } ], "source": [ "for element in d.items():\n", " k = element[0]\n", " v = element[1]\n", " print(k, v)" ] }, { "cell_type": "code", "execution_count": 175, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 eins\n", "2 zwei\n", "3 drei\n" ] } ], "source": [ "for k, v in d.items():\n", " print(k, v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tuple unpacking" ] }, { "cell_type": "code", "execution_count": 176, "metadata": {}, "outputs": [], "source": [ "l = [3, 4, 5]\n", "a, b, c = l" ] }, { "cell_type": "code", "execution_count": 177, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3 4 5\n" ] } ], "source": [ "print(a, b, c)" ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [], "source": [ "l = [1, 2, 3, 4]" ] }, { "cell_type": "code", "execution_count": 179, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " too many values to unpack (expected 3)\n" ] } ], "source": [ "try:\n", " a, b, c = l\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [], "source": [ "a, b, *rest = l" ] }, { "cell_type": "code", "execution_count": 181, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 2\n" ] } ], "source": [ "print(a, b)" ] }, { "cell_type": "code", "execution_count": 182, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[3, 4]" ] }, "execution_count": 182, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rest" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### ``assert``" ] }, { "cell_type": "code", "execution_count": 183, "metadata": {}, "outputs": [], "source": [ "def foo(bar):\n", " 'Compute a foo from a bar string'\n", " assert type(bar) is str\n", " return bar*5" ] }, { "cell_type": "code", "execution_count": 184, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'hallohallohallohallohallo'" ] }, "execution_count": 184, "metadata": {}, "output_type": "execute_result" } ], "source": [ "foo('hallo')" ] }, { "cell_type": "code", "execution_count": 185, "metadata": {}, "outputs": [], "source": [ "try:\n", " foo([1, 2, 3])\n", "except AssertionError: # <--- DON'T DO THIS! NEVER EVER!!\n", " pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References, (Im)mutability" ] }, { "cell_type": "code", "execution_count": 186, "metadata": {}, "outputs": [], "source": [ "a = 42" ] }, { "cell_type": "code", "execution_count": 187, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685905188368" ] }, "execution_count": 187, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(a) " ] }, { "cell_type": "code", "execution_count": 188, "metadata": {}, "outputs": [], "source": [ "b = a" ] }, { "cell_type": "code", "execution_count": 189, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685905188368" ] }, "execution_count": 189, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(b)" ] }, { "cell_type": "code", "execution_count": 190, "metadata": {}, "outputs": [], "source": [ "a += 1" ] }, { "cell_type": "code", "execution_count": 191, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "43" ] }, "execution_count": 191, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": 192, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "42" ] }, "execution_count": 192, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b" ] }, { "cell_type": "code", "execution_count": 193, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685905188368" ] }, "execution_count": 193, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(b)" ] }, { "cell_type": "code", "execution_count": 194, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685905188400" ] }, "execution_count": 194, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(a)" ] }, { "cell_type": "code", "execution_count": 195, "metadata": {}, "outputs": [], "source": [ "a = [1, 2, 3]\n", "b = a" ] }, { "cell_type": "code", "execution_count": 196, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 196, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a is b" ] }, { "cell_type": "code", "execution_count": 197, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 197, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(a) == id(b)" ] }, { "cell_type": "code", "execution_count": 198, "metadata": {}, "outputs": [], "source": [ "c = a[:]" ] }, { "cell_type": "code", "execution_count": 199, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 199, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c is a" ] }, { "cell_type": "code", "execution_count": 200, "metadata": {}, "outputs": [], "source": [ "l1 = [1, [2, 3, 4], 5]" ] }, { "cell_type": "code", "execution_count": 201, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 201, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(l1)" ] }, { "cell_type": "code", "execution_count": 202, "metadata": {}, "outputs": [], "source": [ "l2 = l1[:]" ] }, { "cell_type": "code", "execution_count": 203, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 203, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l2 is l1" ] }, { "cell_type": "code", "execution_count": 204, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, [2, 3, 4], 5]" ] }, "execution_count": 204, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l1" ] }, { "cell_type": "code", "execution_count": 205, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, [2, 3, 4], 5]" ] }, "execution_count": 205, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l2" ] }, { "cell_type": "code", "execution_count": 206, "metadata": {}, "outputs": [], "source": [ "l1.append(6)" ] }, { "cell_type": "code", "execution_count": 208, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, [2, 3, 4], 5, 6]" ] }, "execution_count": 208, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l1" ] }, { "cell_type": "code", "execution_count": 209, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, [2, 3, 4], 5]" ] }, "execution_count": 209, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l2" ] }, { "cell_type": "code", "execution_count": 210, "metadata": {}, "outputs": [], "source": [ "l1[1].append(666)" ] }, { "cell_type": "code", "execution_count": 212, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, [2, 3, 4, 666], 5, 6]" ] }, "execution_count": 212, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l1" ] }, { "cell_type": "code", "execution_count": 214, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, [2, 3, 4, 666], 5]" ] }, "execution_count": 214, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Deep copy" ] }, { "cell_type": "code", "execution_count": 216, "metadata": {}, "outputs": [], "source": [ "import copy" ] }, { "cell_type": "code", "execution_count": 217, "metadata": {}, "outputs": [], "source": [ "l1 = [1, [2,3,4], 5]" ] }, { "cell_type": "code", "execution_count": 218, "metadata": {}, "outputs": [], "source": [ "l2 = copy.deepcopy(l1)" ] }, { "cell_type": "code", "execution_count": 219, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 219, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l1 is l2" ] }, { "cell_type": "code", "execution_count": 220, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 220, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l1[1] is l2[1]" ] }, { "cell_type": "code", "execution_count": 221, "metadata": {}, "outputs": [], "source": [ "class Person:\n", " def __init__(self, firstname, lastname):\n", " self.firstname = firstname\n", " self.lastname = lastname" ] }, { "cell_type": "code", "execution_count": 227, "metadata": {}, "outputs": [], "source": [ "joerg = Person('Joerg', 'Faschingbauer')" ] }, { "cell_type": "code", "execution_count": 223, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<__main__.Person at 0x7f0b14487be0>" ] }, "execution_count": 223, "metadata": {}, "output_type": "execute_result" } ], "source": [ "joerg" ] }, { "cell_type": "code", "execution_count": 226, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'firstname': 'Joerg', 'lastname': 'Fasschingbauer'}" ] }, "execution_count": 226, "metadata": {}, "output_type": "execute_result" } ], "source": [ "joerg.__dict__" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Strings are immutable" ] }, { "cell_type": "code", "execution_count": 228, "metadata": {}, "outputs": [], "source": [ "s1 = 'hello'" ] }, { "cell_type": "code", "execution_count": 229, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685602274352" ] }, "execution_count": 229, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(s1)" ] }, { "cell_type": "code", "execution_count": 230, "metadata": {}, "outputs": [], "source": [ "s1 += ' '" ] }, { "cell_type": "code", "execution_count": 239, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685561461616" ] }, "execution_count": 239, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(s1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lists are mutable" ] }, { "cell_type": "code", "execution_count": 234, "metadata": {}, "outputs": [], "source": [ "l = [1,2,3]" ] }, { "cell_type": "code", "execution_count": 235, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685561690240" ] }, "execution_count": 235, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(l)" ] }, { "cell_type": "code", "execution_count": 236, "metadata": {}, "outputs": [], "source": [ "l.append(4)" ] }, { "cell_type": "code", "execution_count": 238, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685561690240" ] }, "execution_count": 238, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(l)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And tuples?" ] }, { "cell_type": "code", "execution_count": 242, "metadata": {}, "outputs": [], "source": [ "t = (1, 2, 3)" ] }, { "cell_type": "code", "execution_count": 243, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685561316032" ] }, "execution_count": 243, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(t)" ] }, { "cell_type": "code", "execution_count": 244, "metadata": {}, "outputs": [], "source": [ "t += (4, 5)" ] }, { "cell_type": "code", "execution_count": 245, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685595970464" ] }, "execution_count": 245, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(t)" ] }, { "cell_type": "code", "execution_count": 248, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 'tuple' object has no attribute 'append'\n" ] } ], "source": [ "try:\n", " t.append(6)\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And dictionary? -> ``frozendict``" ] }, { "cell_type": "code", "execution_count": 249, "metadata": {}, "outputs": [], "source": [ "d = {1:'eins', 2:'zwei'}" ] }, { "cell_type": "code", "execution_count": 251, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685561151488" ] }, "execution_count": 251, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(d)" ] }, { "cell_type": "code", "execution_count": 252, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'three'" ] }, "execution_count": 252, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.setdefault(3, 'three')" ] }, { "cell_type": "code", "execution_count": 255, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "139685561151488" ] }, "execution_count": 255, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Iteration, Generators, Iterator Protocol" ] }, { "cell_type": "code", "execution_count": 263, "metadata": {}, "outputs": [], "source": [ "l = [0, 1, 2]" ] }, { "cell_type": "code", "execution_count": 264, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 2]\n" ] } ], "source": [ "print(l)" ] }, { "cell_type": "code", "execution_count": 260, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n" ] } ], "source": [ "for element in l:\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 262, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n" ] } ], "source": [ "for element in range(3):\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 265, "metadata": {}, "outputs": [], "source": [ "r = range(3)" ] }, { "cell_type": "code", "execution_count": 267, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n" ] } ], "source": [ "for element in r:\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 270, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "range(0, 3)\n" ] } ], "source": [ "print(r)" ] }, { "cell_type": "code", "execution_count": 272, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "range(0, 30000000)" ] }, "execution_count": 272, "metadata": {}, "output_type": "execute_result" } ], "source": [ "range(3*10**7)" ] }, { "cell_type": "code", "execution_count": 279, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n" ] } ], "source": [ "for element in l:\n", " print(element)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Iterator Protocol" ] }, { "cell_type": "code", "execution_count": 275, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1, 2]" ] }, "execution_count": 275, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l" ] }, { "cell_type": "code", "execution_count": 276, "metadata": {}, "outputs": [], "source": [ "it = iter(l)" ] }, { "cell_type": "code", "execution_count": 278, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "list_iterator" ] }, "execution_count": 278, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(it)" ] }, { "cell_type": "code", "execution_count": 280, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 280, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(it)" ] }, { "cell_type": "code", "execution_count": 281, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 281, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(it)" ] }, { "cell_type": "code", "execution_count": 282, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 282, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(it)" ] }, { "cell_type": "code", "execution_count": 284, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " \n" ] } ], "source": [ "try:\n", " next(it)\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 285, "metadata": {}, "outputs": [], "source": [ "r = range(3)" ] }, { "cell_type": "code", "execution_count": 286, "metadata": {}, "outputs": [], "source": [ "it = iter(r)" ] }, { "cell_type": "code", "execution_count": 287, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 287, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(it)" ] }, { "cell_type": "code", "execution_count": 288, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 288, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(it)" ] }, { "cell_type": "code", "execution_count": 289, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 289, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(it)" ] }, { "cell_type": "code", "execution_count": 291, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " \n" ] } ], "source": [ "try:\n", " next(it)\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Enter ``yield``" ] }, { "cell_type": "code", "execution_count": 303, "metadata": {}, "outputs": [], "source": [ "def my_iterable():\n", " print('before 0')\n", " yield 0\n", " print('before 1')\n", " yield 1\n", " print('before 2')\n", " yield 2\n", " print('done')" ] }, { "cell_type": "code", "execution_count": 304, "metadata": {}, "outputs": [], "source": [ "m = my_iterable()" ] }, { "cell_type": "code", "execution_count": 305, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "generator" ] }, "execution_count": 305, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(m)" ] }, { "cell_type": "code", "execution_count": 306, "metadata": {}, "outputs": [], "source": [ "it = iter(m)" ] }, { "cell_type": "code", "execution_count": 307, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "before 0\n" ] }, { "data": { "text/plain": [ "0" ] }, "execution_count": 307, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(it)" ] }, { "cell_type": "code", "execution_count": 308, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "before 1\n" ] }, { "data": { "text/plain": [ "1" ] }, "execution_count": 308, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(it)" ] }, { "cell_type": "code", "execution_count": 309, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "before 2\n" ] }, { "data": { "text/plain": [ "2" ] }, "execution_count": 309, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(it)" ] }, { "cell_type": "code", "execution_count": 310, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "done\n", " \n" ] } ], "source": [ "try:\n", " next(it)\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 301, "metadata": {}, "outputs": [], "source": [ "m = my_iterable()" ] }, { "cell_type": "code", "execution_count": 302, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n" ] } ], "source": [ "for element in m:\n", " print(element)" ] }, { "cell_type": "code", "execution_count": 316, "metadata": {}, "outputs": [], "source": [ "def even_numbers(start, end):\n", " run = start\n", " while run < end:\n", " if run % 2 == 0:\n", " yield run\n", " run += 1" ] }, { "cell_type": "code", "execution_count": 317, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6\n", "8\n", "10\n", "12\n", "14\n", "16\n", "18\n" ] } ], "source": [ "for element in even_numbers(5, 20):\n", " print(element)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# AAARGHHH" ] }, { "cell_type": "code", "execution_count": 319, "metadata": {}, "outputs": [], "source": [ "def f(a, b):\n", " print(a, b)" ] }, { "cell_type": "code", "execution_count": 320, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 2\n" ] } ], "source": [ "f(1, 2)" ] }, { "cell_type": "code", "execution_count": 321, "metadata": {}, "outputs": [], "source": [ "l = [1,2]" ] }, { "cell_type": "code", "execution_count": 322, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 2\n" ] } ], "source": [ "f(l[0], l[1])" ] }, { "cell_type": "code", "execution_count": 323, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 2\n" ] } ], "source": [ "f(*l)" ] }, { "cell_type": "code", "execution_count": 324, "metadata": {}, "outputs": [], "source": [ "def f(*args):\n", " print(args)" ] }, { "cell_type": "code", "execution_count": 326, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1, 2)\n" ] } ], "source": [ "f(1, 2)" ] }, { "cell_type": "code", "execution_count": 329, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1, 2, 3)\n" ] } ], "source": [ "f(1, 2, 3)" ] }, { "cell_type": "code", "execution_count": 330, "metadata": {}, "outputs": [], "source": [ "t = (1,2,3)" ] }, { "cell_type": "code", "execution_count": 332, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 332, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(t)" ] }, { "cell_type": "code", "execution_count": 344, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 344, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.__len__()" ] }, { "cell_type": "code", "execution_count": 341, "metadata": {}, "outputs": [], "source": [ "def my_print(*args):\n", " my_args = ('hallo, ',) + args\n", " print(*my_args)" ] }, { "cell_type": "code", "execution_count": 343, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hallo, 1 2\n" ] } ], "source": [ "my_print(1, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Comprehensions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### List Comprehension" ] }, { "cell_type": "code", "execution_count": 345, "metadata": {}, "outputs": [], "source": [ "r = range(5)" ] }, { "cell_type": "code", "execution_count": 346, "metadata": {}, "outputs": [], "source": [ "squares = []\n", "for i in r:\n", " squares.append(i**2)" ] }, { "cell_type": "code", "execution_count": 347, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1, 4, 9, 16]" ] }, "execution_count": 347, "metadata": {}, "output_type": "execute_result" } ], "source": [ "squares" ] }, { "cell_type": "code", "execution_count": 348, "metadata": {}, "outputs": [], "source": [ "squares = [i**2 for i in range(5)]" ] }, { "cell_type": "code", "execution_count": 349, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1, 4, 9, 16]" ] }, "execution_count": 349, "metadata": {}, "output_type": "execute_result" } ], "source": [ "squares" ] }, { "cell_type": "code", "execution_count": 357, "metadata": {}, "outputs": [], "source": [ "even_squares = [i**2 for i in range(10) if i%2 == 0]" ] }, { "cell_type": "code", "execution_count": 356, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 2, 4, 6, 8]" ] }, "execution_count": 356, "metadata": {}, "output_type": "execute_result" } ], "source": [ "even_squares" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Generator Expresssions" ] }, { "cell_type": "code", "execution_count": 358, "metadata": {}, "outputs": [], "source": [ "def squares_fun():\n", " sqs = []\n", " for i in range(5):\n", " sqs.append(i**2)\n", " return sqs\n", "squares = squares_fun()" ] }, { "cell_type": "code", "execution_count": 360, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1, 4, 9, 16]" ] }, "execution_count": 360, "metadata": {}, "output_type": "execute_result" } ], "source": [ "squares" ] }, { "cell_type": "code", "execution_count": 361, "metadata": {}, "outputs": [], "source": [ "squares = [i**2 for i in range(5)]" ] }, { "cell_type": "code", "execution_count": 362, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1, 4, 9, 16]" ] }, "execution_count": 362, "metadata": {}, "output_type": "execute_result" } ], "source": [ "squares" ] }, { "cell_type": "code", "execution_count": 363, "metadata": {}, "outputs": [], "source": [ "def squares_gen():\n", " for i in range(5):\n", " yield i**2\n", "squares = squares_gen()" ] }, { "cell_type": "code", "execution_count": 365, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 365, "metadata": {}, "output_type": "execute_result" } ], "source": [ "squares" ] }, { "cell_type": "code", "execution_count": 367, "metadata": {}, "outputs": [], "source": [ "for i in squares:\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 373, "metadata": {}, "outputs": [], "source": [ "squares = (i**2 for i in range(5))" ] }, { "cell_type": "code", "execution_count": 374, "metadata": {}, "outputs": [ { "data": { "text/plain": [ " at 0x7f0aefb955b0>" ] }, "execution_count": 374, "metadata": {}, "output_type": "execute_result" } ], "source": [ "squares" ] }, { "cell_type": "code", "execution_count": 375, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "4\n", "9\n", "16\n" ] } ], "source": [ "for i in squares:\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 376, "metadata": {}, "outputs": [], "source": [ "for i in squares:\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 377, "metadata": {}, "outputs": [], "source": [ "squares = (i**2 for i in range(5))" ] }, { "cell_type": "code", "execution_count": 379, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 'generator' object is not subscriptable\n" ] } ], "source": [ "try:\n", " squares[3]\n", "except Exception as e:\n", " print(type(e), e)" ] }, { "cell_type": "code", "execution_count": 380, "metadata": {}, "outputs": [], "source": [ "squares_list = list(squares)" ] }, { "cell_type": "code", "execution_count": 382, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1, 4, 9, 16]" ] }, "execution_count": 382, "metadata": {}, "output_type": "execute_result" } ], "source": [ "squares_list" ] }, { "cell_type": "code", "execution_count": 383, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['a', 'b', 'c']" ] }, "execution_count": 383, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list('abc')" ] }, { "cell_type": "code", "execution_count": 384, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a\n", "b\n", "c\n" ] } ], "source": [ "for c in 'abc':\n", " print(c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dictionary Comprehension" ] }, { "cell_type": "code", "execution_count": 385, "metadata": {}, "outputs": [], "source": [ "d = {\n", " 1: 1,\n", " 2: 4, \n", " 3: 9,\n", " # ...\n", "}" ] }, { "cell_type": "code", "execution_count": 386, "metadata": {}, "outputs": [], "source": [ "d = {i: i**2 for i in range(10)}" ] }, { "cell_type": "code", "execution_count": 388, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}" ] }, "execution_count": 388, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d" ] }, { "cell_type": "code", "execution_count": 389, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict" ] }, "execution_count": 389, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Set Comprehension" ] }, { "cell_type": "code", "execution_count": 390, "metadata": {}, "outputs": [], "source": [ "s = {1, 4, 9, 16,} # ..." ] }, { "cell_type": "code", "execution_count": 391, "metadata": {}, "outputs": [], "source": [ "s = {i**2 for i in range(10)}" ] }, { "cell_type": "code", "execution_count": 393, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{0, 1, 4, 9, 16, 25, 36, 49, 64, 81}" ] }, "execution_count": 393, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 394, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'a', 'b', 'f', 'o', 'r'}" ] }, "execution_count": 394, "metadata": {}, "output_type": "execute_result" } ], "source": [ "set('foobar')" ] }, { "cell_type": "code", "execution_count": 395, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'bar', 'foo'}" ] }, "execution_count": 395, "metadata": {}, "output_type": "execute_result" } ], "source": [ "set(['foo', 'bar'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Trailing comma? ..." ] }, { "cell_type": "code", "execution_count": 397, "metadata": {}, "outputs": [], "source": [ "t = (1, 2, 3)" ] }, { "cell_type": "code", "execution_count": 399, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tuple" ] }, "execution_count": 399, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(t)" ] }, { "cell_type": "code", "execution_count": 400, "metadata": {}, "outputs": [], "source": [ "t = (666)" ] }, { "cell_type": "code", "execution_count": 402, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 402, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(t)" ] }, { "cell_type": "code", "execution_count": 403, "metadata": {}, "outputs": [], "source": [ "t = (42,)" ] }, { "cell_type": "code", "execution_count": 404, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tuple" ] }, "execution_count": 404, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(t)" ] }, { "cell_type": "code", "execution_count": 406, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(42,)" ] }, "execution_count": 406, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t" ] }, { "cell_type": "code", "execution_count": 407, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 407, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(t)" ] }, { "cell_type": "code", "execution_count": 408, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 408, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.__len__()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ``eval()``" ] }, { "cell_type": "code", "execution_count": 414, "metadata": {}, "outputs": [], "source": [ "expr_str = '[1,2,3]'" ] }, { "cell_type": "code", "execution_count": 415, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "str" ] }, "execution_count": 415, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(expr_str)" ] }, { "cell_type": "code", "execution_count": 416, "metadata": {}, "outputs": [], "source": [ "expr = eval(expr_str)" ] }, { "cell_type": "code", "execution_count": 418, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "list" ] }, "execution_count": 418, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(expr)" ] }, { "cell_type": "code", "execution_count": 419, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3]" ] }, "execution_count": 419, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Functional Tools" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ``enumerate()``" ] }, { "cell_type": "code", "execution_count": 409, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 Joerg\n", "1 Caro\n", "2 Johanna\n", "3 Philipp\n" ] } ], "source": [ "l = ['Joerg', 'Caro', 'Johanna', 'Philipp']\n", "i = 0\n", "for element in l:\n", " print(i, element)\n", " i += 1" ] }, { "cell_type": "code", "execution_count": 420, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 Joerg\n", "1 Caro\n", "2 Johanna\n", "3 Philipp\n" ] } ], "source": [ "for i, element in enumerate(l):\n", " print(i, element)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ``map()``, ``filter()``" ] }, { "cell_type": "code", "execution_count": 421, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1, 4, 9, 16]" ] }, "execution_count": 421, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[i**2 for i in range(5)]" ] }, { "cell_type": "code", "execution_count": 423, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "4\n", "9\n", "16\n" ] } ], "source": [ "def sq(i): return i**2\n", "for num in map(sq, range(5)):\n", " print(num)" ] }, { "cell_type": "code", "execution_count": 426, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "4\n", "9\n", "16\n" ] } ], "source": [ "for num in map(lambda i: i**2, range(5)):\n", " print(num)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Same with a custom generator expression" ] }, { "cell_type": "code", "execution_count": 427, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "4\n", "9\n", "16\n" ] } ], "source": [ "for num in (i**2 for i in range(5)):\n", " print(num)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ``filter()``" ] }, { "cell_type": "code", "execution_count": 428, "metadata": {}, "outputs": [], "source": [ "def even(i):\n", " return i%2 == 0" ] }, { "cell_type": "code", "execution_count": 429, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "2\n", "4\n" ] } ], "source": [ "for num in filter(even, range(5)):\n", " print(num)" ] }, { "cell_type": "code", "execution_count": 430, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "2\n", "4\n" ] } ], "source": [ "for num in filter(lambda i: i%2 == 0, range(5)):\n", " print(num)" ] }, { "cell_type": "code", "execution_count": 431, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "2\n", "4\n" ] } ], "source": [ "for num in (i for i in range(5) if i%2 == 0):\n", " print(num)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Science" ] }, { "cell_type": "code", "execution_count": 432, "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 433, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 436, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('data.csv', skiprows=1, sep=';')" ] }, { "cell_type": "code", "execution_count": 437, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestamphz2hz3_5
02023-10-26:14:46:040.0005660.000729
12023-10-26:14:46:040.1323630.229977
22023-10-26:14:46:040.2605970.444942
32023-10-26:14:46:040.3854330.638212
42023-10-26:14:46:040.5027100.796519
............
5072023-10-26:14:46:09-0.936250-0.972326
5082023-10-26:14:46:09-0.974442-0.999992
5092023-10-26:14:46:09-0.995683-0.973719
5102023-10-26:14:46:09-0.999245-0.895850
5112023-10-26:14:46:09-0.985202-0.768778
\n", "

512 rows × 3 columns

\n", "
" ], "text/plain": [ " timestamp hz2 hz3_5\n", "0 2023-10-26:14:46:04 0.000566 0.000729\n", "1 2023-10-26:14:46:04 0.132363 0.229977\n", "2 2023-10-26:14:46:04 0.260597 0.444942\n", "3 2023-10-26:14:46:04 0.385433 0.638212\n", "4 2023-10-26:14:46:04 0.502710 0.796519\n", ".. ... ... ...\n", "507 2023-10-26:14:46:09 -0.936250 -0.972326\n", "508 2023-10-26:14:46:09 -0.974442 -0.999992\n", "509 2023-10-26:14:46:09 -0.995683 -0.973719\n", "510 2023-10-26:14:46:09 -0.999245 -0.895850\n", "511 2023-10-26:14:46:09 -0.985202 -0.768778\n", "\n", "[512 rows x 3 columns]" ] }, "execution_count": 437, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 438, "metadata": {}, "outputs": [], "source": [ "points = np.arange(stop=512*0.001, step=0.001)" ] }, { "cell_type": "code", "execution_count": 443, "metadata": {}, "outputs": [], "source": [ "df['timestamp'] = points" ] }, { "cell_type": "code", "execution_count": 444, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestamphz2hz3_5
00.0000.0005660.000729
10.0010.1323630.229977
20.0020.2605970.444942
30.0030.3854330.638212
40.0040.5027100.796519
............
5070.507-0.936250-0.972326
5080.508-0.974442-0.999992
5090.509-0.995683-0.973719
5100.510-0.999245-0.895850
5110.511-0.985202-0.768778
\n", "

512 rows × 3 columns

\n", "
" ], "text/plain": [ " timestamp hz2 hz3_5\n", "0 0.000 0.000566 0.000729\n", "1 0.001 0.132363 0.229977\n", "2 0.002 0.260597 0.444942\n", "3 0.003 0.385433 0.638212\n", "4 0.004 0.502710 0.796519\n", ".. ... ... ...\n", "507 0.507 -0.936250 -0.972326\n", "508 0.508 -0.974442 -0.999992\n", "509 0.509 -0.995683 -0.973719\n", "510 0.510 -0.999245 -0.895850\n", "511 0.511 -0.985202 -0.768778\n", "\n", "[512 rows x 3 columns]" ] }, "execution_count": 444, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 445, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 447, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 453, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 453, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(df['timestamp'], df['hz2'])" ] }, { "cell_type": "code", "execution_count": 451, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 451, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(df['timestamp'], df['hz3_5'])" ] }, { "cell_type": "code", "execution_count": null, "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.10.11" } }, "nbformat": 4, "nbformat_minor": 4 }