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 : expressiona = 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()