# Nicolas # Python eksamensforberedelse ## List #### Beskrivelse: List er en af de 4 standard data structioers i Python. (Set, Tupler, Dicts) Lister er ordered og mutable datastructurer, der kan indholder flere forskellige typer af data. Ofte brugte fucntioner i forbindelse med lister: .append() .sort() Ofte brugte fucntioner i forbindelse med sets: .union() .intersection() .difference() .symmetric_differenc() #### Eksempel: ```Python List = [2, 1 ,3] >List out: [2, 1 ,3 List.append(4) out: [2, 1 ,3, 4] List.sort() out: [1, 2 ,3, 4] #Indexing finding position 1 starting from 0. List[1] out: 2 #Indexing with negatives, finds from the last position of the list first. List[-2] out: 3 #Finds postion 0 to 1 in List List[0:1] out: [1,2] #Finding every second index, in the list. List[::2] out: [2, 4] #Tuples: tuple = (2, 3, 5) #Tuples are immutable, and therefor are locked in size and content when first created. #Dictonaries numbers = {'one':1, 'two':2, 'three':3} #Comma seperated lsit with key:value pairs numbers['two'] out: 2 numbers['eighty'] = 80 numbers out: {'one':1, 'two':2, 'three':3, 'eigthy':80} #sets set1 = {"hej", "dig"} set2 = {"med" "er", "du", "dig"} # union: items appearing in either set1 | set2 # with an operator set2.union(set1) # equivalently with a method out: {"hej", "med", "dig", "er", "du", "dig"} # intersection: items appearing in both set1 & set2 # with an operator set2.intersection(set1) # equivalently with a method out: {"dig"} # difference: items in set1 but not in set2 set1 - set2 # with an operator set2.difference(set1) # equivalently with a method out: {"hej"} # symmetric difference: items appearing in only one set set1 ^ set2 # with an operator set1.symmetric_difference(set2) # equivalently with a method out: {"hej", "med", "er", "du"} ``` ## Loops #### Beskrivelse: Der findes to forskellige loops i python: ##### While While bliver brugt til at gentage en blok kode, indtil en bestemt betingelse er mødt ##### For For loop bruges til at løbe over elementer, dette bruges ofte til at køre over et stykke kode "n" antal gange. #### Eksempel: ``` count = 0 while count < 5: print(count) count += 1 out: 0 1 2 3 4 for n in range(5) print(n) out: 0 1 2 3 4 ``` ## Conditional statements #### Beskrivelse: Bedre beskrevet som if, else og else if(elif) #### Eksempel: ``` if number == 0: print(number, "is zero") elif number > 0: print(number, "is positive") elif number < 0: print(number, "is negative") elif: ``` ## Functions #### Beskrivelse: Funktioner kan blive brugt til at køre flere blokke koder og kan blive kaldt flere gange. Hvilket også kan gøre kode mere læsbart. Funktioner bliver defineret ved brug af det og paranteser. #### Eksempel: ``` def myFunction(list): for n len(list): print(n) p = [1, 2, 3, 4, 5] myFunction(p) out: 1 2 3 4 5 ``` ## Modules #### Beskrivelse: Moduler bliver brugt fra en tredje parts udbyder eller en af pythons egne. Man kan også lave sit eget modul, simpelt ved bare at bruge pythons import statements. Disse kan bruges på forskellige måder: #### Eksempel: ``` #Import as to create a shorter alias import numpy as np #From so ypu can pick particular funtions from a module from math import pi #From with * imports erverything from tensorflow import * ``` ## Dicts #### Beskrivelse: ![](https://i.imgur.com/DIvS7HZ.png) #### Eksempel: ``` ``` ## Files #### Beskrivelse: Python har et standard funktion ved navn open, som har forskellige valg muligheder for fil håndtering, første parameter den tager imod er fil placeringen, og anden er håndteringen. `"r"` - Read - Default value. Opens a file for reading, error if the file does not exist `"a"` - Append - Opens a file for appending, creates the file if it does not exist `"w"` - Write - Opens a file for writing, creates the file if it does not exist `"x"` - Create - Creates the specified file, returns an error if the file exists Derudover har man muligheden for at sætte en ekstra håndtering på lige efter: `"t"` - Text - Default value. Text mode `"b"` - Binary - Binary mode (e.g. images #### Eksempel: ``` #Only with one extra handler as read f = open("demofile.txt", "r") #With to handlers read and text file = open("demofile.txt", "rt") ``` ## CLI - Command Line Interface #### Beskrivelse: I python har man muligheden for at skrive sit script med argparser så man kan køre sit script med argumenter i CLI. #### Eksempel: ``` # myls.py # Import the argparse library import argparse import os import sys # Create the parser my_parser = argparse.ArgumentParser(description='List the content of a folder') # Add the arguments my_parser.add_argument('Path', metavar='path', type=str, help='the path to list') # Execute the parse_args() method args = my_parser.parse_args() input_path = args.Path if not os.path.isdir(input_path): print('The path specified does not exist') sys.exit() print('\n'.join(os.listdir(input_path))) ``` ## Object Orientet #### Beskrivelse: I objekt orienteret programmering skriver man klasser som repræsentere virklige ting, som kan have forskelligt indhold funktioner osv. At lave et objekt fra en klasse kalder man instatiation, og du arbejder derfor med en inctance af klassen. For at kunne gøre brug af sin klasse skal man have en __init__() som sørger for at initialisere koden så den er klar til brug: ``` class Person: def __init__(self, firstname, lastname, age): self.firstname = firstname self.lastname = lastname self.age = age person = Person("John", "Doe", 36) ``` Derudover skal man lave en __ str__ for at kunne få inputtet ud pænt istedet for en ram plads. Og så er der en del andre data modeller som også burde implementeres, heldigvis i python 3.9 blev der introduceret Dataclasses, de kan gøre overstående plus nemt implementere det krævede str og eq osv osv sådan her: ``` from dataclasses import dataclass @dataclass class Person: firstname: str lastname: str age: int person = Person("Johnny", "Does", 39) ``` #### Eksempel: ``` ``` ## Exceptions #### Beskrivelse: ![](https://i.imgur.com/TkizL9G.png) Der kan bruges forskellige kombinationer til at lave exeptions, men det er dog vigtigt at man lige overvejer hvor og hvordan koden du skriver laver fejl, så hvis du skriver din egen bruger defineret fejl, kan den i teorien bliver vist kaldt selvom det ikke er den præcise fejl der sker. Eksemplet nedenunder undgår dette ved en else. #### Eksempel: ``` try: linux_interaction() except AssertionError as error: print(error) else: try: with open('debug.log') as file: read_data = file.read() except FileNotFoundError as fnf_error: print(fnf_error) finally: print('going home') x = 10 if x > 5: raise Exception('x should not exceed 5. The value of x was: {}'.format(x)) ``` ## Intro til plotting #### Beskrivelse: Modulet mathplotlip har muligheden for at plotte data. Dette kan den gøres med funktionen .plot() #### Eksempel: ``` import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4], [1, 4, 2, 3]) plt.show() ``` ## Intro til numpy #### Beskrivelse: Numpy er et python bibliotek som sætter sig stærkt i multidimensionelle arrays, hvor det indeholder en masse funktioner som gør det hurtigere og nemmere at udføre kode omhandlende arrays, alt fra linær algebra til tilfældige simulationer. #### Eksempel: ``` >>> a = np.arange(6) # 1d array >>> print(a) [0 1 2 3 4 5] >>> >>> b = np.arange(12).reshape(4,3) # 2d array >>> print(b) [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] >>> >>> c = np.arange(24).reshape(2,3,4) # 3d array >>> print(c) [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] ``` ## plotting Cntd. #### Beskrivelse: #### Eksempel: ```Python function test() { console.log("look ma’, no spaces"); } ``` ## intro til pandas #### Beskrivelse: Pandas er bygget på Numpy og er derfor også et bibliotek som har nogle super fede funktioner til at sortere og manipulere 1D og 2D arrays. Som hedder 1d series og 2d Dataframe #### Eksempel: ``` ``` ## Multiprocessing #### Beskrivelse: #### Eksempel: ```Python function test() { console.log("look ma’, no spaces"); } ``` ## Generators #### Beskrivelse: #### Eksempel: ```Python function test() { console.log("look ma’, no spaces"); } ``` ## Requests #### Beskrivelse: #### Eksempel: ```Python function test() { console.log("look ma’, no spaces"); } ``` ## Webscraping basics #### Beskrivelse: #### Eksempel: ```Python function test() { console.log("look ma’, no spaces"); } ``` ## Regular expression #### Beskrivelse: #### Eksempel: ```Python function test() { console.log("look ma’, no spaces"); } ``` ## Selenium #### Beskrivelse: #### Eksempel: ```Python function test() { console.log("look ma’, no spaces"); } ``` ## Feature Spaces #### Beskrivelse: #### Eksempel: ```Python function test() { console.log("look ma’, no spaces"); } ``` ## Neural Networks #### Beskrivelse: #### Eksempel: ```Python function test() { console.log("look ma’, no spaces"); } ```