Vertiefungsmodul Programmieren für Biologen Lernkarteien
HHU V-Modul Biologie Bachelor Lernkarten für thereotischen Klausurteil
HHU V-Modul Biologie Bachelor Lernkarten für thereotischen Klausurteil
-
- 1 / 47
-
Cartes-fiches
Menge definieren: set-Objekt
- Mengen werden durch set-Objekte dargestellt
- eine Menge kann mit dem Konstrukt {...} definiert werden
- kann unterschiedliche Objekte enthalten
- da die Elemente einer Menge einmalig sein sollen, werden Elemente die mehrmals genannt werden nur ein Mal gezählt
- Objekte müssen unveränderlich sein --> Keine Liste erlaiubt, Tupel und String schon
set-Objekt
enthält eine ungeordnete Sammlung von einmaligen unveränderlichen Objekten
Mengen-Casting: Funktion set(...)
- so kann man list-Objekte und Zeichenketten in Mengen umwandeln
- bei einem String als Argument liefer set(...) ein set-Objekt zurück, indem die einzelnen Zeichen die Elemente der Menge darstellen
-bei list-Objekten liefert die Funktion ein set-Objekt zurück, dass einmalige und unveränderbare Elemente aus der ursprünglichen Liste enthält
Menge als Liste betrachten
- kann mit Hilfe von list(...), str(...), tupel(...) un das jeweilige Objekt gecastet werden
- Listen und Tupel haben dann Menge als Wert (also keine doppelten Sachen)
Methode add bei sets
hinzufügen von Elementen in eine Menge (an beliebiger Stelle)
Methode clear(...) bei sets
leert die Menge
Methode copy(...) bei sets
-liefert eine flache Kopie einer Menge zurück
- da tiefe Elemente unveränderlich sein müssen -> keine Notwendigkeit von deepcopy
Funktion len(...) bei sets
Anzahl der Elemente einer Menge
Methode difference(...) bei sets
liefert die Differenz zwischen zwei Variablen (zwei sets) zurück
wenn x={1,2,3,4} und y={2,4}, dann gilt: x.difference(y) => {1,3}
Methode difference_update(...) bei sets
wenn die ursprüngliche Menge direkt aktualisiert werden soll
Variable
In einer Variablen kann also ein Wert abgelegt und wieder ausgegeben werden.
Operator minus (-) bei sets
liefert direkt die Mengendifferenz, ohne Methode difference
Methode discard(...) bei sets
- Ein Element kann aus einer Menge entfernt werden
- Falls das Element nicht vorhanden ist, bleibt die Menge unverändert
Methode union(...) bei sets
kann die Vereinigungsmenge zweier Mengen bestimmt werden, hierfür kann man aber auch den Operator gerader Strich verwenden
Methode intersection(..) bei sets
Kann die Schnittmenge zweier Menschen bestimmen , kann auch mit dem Operator & erfolgen
Methode isdisjoint(...) bei sets
kann ermitteln, ob zwei Mengen disjunkt sind, also ihre Schnittmenge leer ist (haben also nicht den gleichen Wert an Menge)
Teilmenge einer Menge
- Mit der Methode issubset(...) kann ermittelt werden, ob eine Menge Teilmenge einer anderen ist
- kann ebenfalls mit <= gemacht werden
Obermenge eine Menge
- Mit der Methode issuperset(...) kann man ermitteln, ob eine Menge eine Obermenge einer anderen ist
- Kann auch mit dem Operator >= erzeugt werden
Methode pop(...) bei sets
-wird ein beliebiges Element einer nicht-leeren Menge zurückgeliefert und entfernt
List-Comprehension: Definition
-kompakte Variante der Listendefinition
- setzt sich zusammen aus:
1. Eingabefolgetyp
2. optionale Abhängigkeit
3. Variable, die die Elemente der Eingabeabfolge repräsentiert
4. ein Zielausdruck, der Elemente in einer Ausgabeliste von Mitgliedern der Eingabefolge erzeugt, die die Abhängigkeit erfüllt
Beispiel List-Comprehension
[i**2 for in range(10) if i % 2=0}
- i**2 ist der Zielausdruck
- for i in --> Das i steht für die Variable
- range(10) Eingabefolgetyp
- if i % 2=0 Optionale Abhängigkeit
List-Comprehension: Allgemeine Möglichkeit
- Zielausdruck kann ein Tupel sein
- es können mehrere Schleifen verwendet werden
- durch Verschachtelungen lassen sich auch Matrizen erstellen
- es lassen sich auch kompakte Mengen definieren; jeedes Ausgabeelement dann einmalig
Reguläre Ausdrücke Allgemein
- können Zeichenketten nach Mustern untersuchen
- es können sehr komplexe Muster abgefragt werden oder Ersetzungen vorgenommen werden
- Verwendung von rohen Zeichenketten (r" ")
- Importierung von re notwendig
Funktion re.search(Muster, String, Mod)
-...liefert ein Regular-Expression-Objekt wenn Muster in String vorhanden ist, ansonsten den Wert Nontype -> false und true, deshalb if-Abfrage
Methode group(...)
-Klammern können bestimmte Teile als Ausdruck gekennzeichnet werden
-> mo=re.search(r"(Bio)(logie)", mein String)
- group greift dann auf die einzelnen Teile zu
->
globale Mustersuche: re.finditer(...)
Falls das Muster mehrmals vorhanden ist, dient diese Methode als Iterator verwendet werden
Globale Mustersuche: re.findall(...)
Falls lediglich die Treffer als String gefunden werden sollen
- Methode liefert eine Liste aller Treffer zurück
Suchen und Ersetzen mit Gruppierungen
- innerhalb der Ersetzunf können die Gruppierungen ebenfalls wieder verwendet werden -> wir schreiben dann \1
- also beispielsweise text_neu=re.sub(r"Biologie",r"Germanistik und \1, text)
Output: Marie studiert Germanistik und Biologie
Methode re.split(...)
-ein Teilstring kann über einen regulären Ausdruck angegben werden
Metazeichen Allgemein
-haben eine spezielle Bedeutung trotz regulärem Ausdruck
- will man die Zeichen selber suchen, muss man dann aber \ schreiben
Metazeichen Punkt
meint jedes beliebige Satzzeichen
Metazeichen: [abc]
- nur ein einziges Zeichen aus der Menge wird gesucht
Metazeichen [^ABC]
- ein Zeichen, aber nicht aus der angegebenen Menge
Metazeichen aa|bb
suchen aa oder bb, nicht gemischt
Metazeichen $
Ende der Zeichenkette
Metazeichen ^
Anfang der Zeichenkette
Quantoren: Definition
Quantoren legen fest, wie oft ein Teil eines Ausdrucks hintereinander vorkommen darf beziehungsweise soll
Zeichenklassen
- [0-9] \d \D Ziffer
- [a-Z, A-Z, a-z, 0-9] \w \W Wortzeichen
- [\t \n \r \f ] \s \S Whitespace
Quantor *
beliebig oft das Zeichen, darf auch fehlen, also Leerzeichen sein
Quantor +
mindestens ein Mal