MQL und Python-Programmiererin Anja Vogel

PCAP - Vorbereitung

auf das Python Zertifikat:

Certified Associate Python Programmer

Vorbereitung auf das PCAP Zertifikat

Dateiendung in Python: .py. Statt Klammern, werden Doppelpunkte und Einrückungen verwendet.

Main Prüfung

if __name__ == "__main__": main()

Arrays

Arrays können in Python folgende Datentypen sein: List, Tuple, Set oder Dictionary.

List: [...]

ist geordnet, änderbar und erlaubt doppelte Einträge: l = [3, "Hallo", True, 3] print(l) # [3, 'Hallo', True, 3]

Tupel: (...)

ist geordnet und unveränderlich und erlaubt doppelte Einträge:
t = ("Stift", "Papier", "Schere", "Stift") print(t) # ('Stift', 'Papier', 'Schere', 'Stift')

Set: {...}

ist ungeordnet, unveränderlich, unindiziert, hat keine doppelten Einträge und erlaubt Hinzufügen und Entfernen:
s = {True, 1, 0, False, None} print(s) # {0, True, None}

Dictionary {... : ...}

ist änderbar und hat keine doppelten Einträge:

d = { "brand": "Mini", "brand": "Porsche", "year": 2000, "colors": ["Silber", "Schwarz"] } print(d) # {'brand': 'Porsche', 'year': 2000, 'colors': ['Silber', 'Schwarz']}

Werte aus Listen erhalten (Unpacking):

colors = ['rot', 'gelb', 'orange'] color1, color2, color3 = colors

Listen erzeugen ähnlich der Mengenschreibweise (List Comprehensions):

Quadrate aller geraden Zahlen kleiner 10 (0, 2, 4, 6, 8): sq = [x*x for x in range(10) if x%2==0] print(sq) # [0, 4, 16, 36, 68]

Schleifen

Einfache Schleifen werden mit range() erzeugt: for i in range(3): #start=0,stop=3,step=1 print(i) # 0,1,2 for i in range(1, 3): #start=1,stop=3,step=1 print(i) # 1,2 for i in range(1, 3, 2): #start=1,stop=3,step=2 print(i) # 1 print(range(3)) # range(0, 3) print(len(range(3))) # 3

Schleifen mit Listen:

for x in [5, 2, 9]: print(x) # 5,2,9 numbers = ["one", "two", "three"] for s in numbers: print(s) # one, two, three i = 0 while i < len(numbers): print(numbers[i]) # one, two, three i += 1 [print(c) for c in numbers] # one, two, three print(len(numbers)) # 3

Schleifen mit Dictionaries:

numbers = {1: "one", 2: "two", 3: "three"} for s in numbers: print(s) # 1,2,3 = keys! print(numbers[s]) # values! for s in numbers.values(): print(s) # one, two, three for key, value in numbers.items(): pass # Schleifen dürfen nicht leer sein print(numbers) # {1: 'one', 2: 'two', 3: 'three'} print(numbers.keys()) # dict_keys([1, 2, 3]) print(numbers.values()) # dict_values(['one', 'two', 'three']) print(len(numbers)) # 3

Schleifen mit Strings:

for x in "banana": print(x) # einzelne Buchstaben!

Funktionen

Funktionen werden mit def definiert: def add(a, b=0): """Addition: a + b""" return a + b

Funktionen mit beliebig vielen Argumenten:

def multi(*values): print(values) multi("eins", "zwei", 3, True) # ('eins', 'zwei', 3, True)

Anonyme Funktionen:

Die Syntax ist: lambda arguments : expression a = lambda x, y: x+y print(a(5, 6)) # 11

OOP Objektorientierung

Klassen:

class Person: species = "Homo sapiens" # Klassenattribut def __init__(self, name): # wird automatisch aufgerufen self.name = name # Instanzattribut def greet(self): print(f"Hi, ich bin {self.name}") p = Person("Anja") p.greet() # Hi, ich bin Anja print(Person.species, p.species, p.name) # Homo sapiens Homo sapiens Anja

Vererbung:

class Student(Person): def __init__(self, name, semester): self.__semester = semester # private durch __ Person.__init__(self, name) def greet(self): print(f"Hi, ich bin {self.name} im {self.__semester} Semester.") p = Student("Anja", "dritten") p.greet() # Hi, ich bin Anja im dritten Semester.

Mehrfachvererbung:

class Person: def __init__(self, name): self.name = name def greet(self): print(f"Hi, ich bin {self.name}!") class Studienfach: def __init__(self, name): self.name = name class Student(Person, Studienfach): def __init__(self, name, fach): Person.__init__(self, name) Studienfach.__init__(self, fach) # überschreibt name! p = Student("Anja", "Medizin") p.greet() # Hi, ich bin Medizin!

Exceptions

try: int("zwei") except ValueError as e: print("ValueError: ", e) finally: print("Fertig") # ValueError: invalid literal for int() with base 10: 'zwei' # Fertig

Formatierung

x = 1.235 print(f"Wert: {x:.2f}") # Wert: 1.24

Dateien

Mögliche Datei Modi: 'r', 'w', 'a', 'b', '+' with open("file.txt", "r", encoding="utf-8") as f: data = f.read()