This commit is contained in:
Jonas_Jones 2024-01-10 16:00:17 +01:00
parent df295d1dfd
commit fb96e238c1
6 changed files with 133 additions and 0 deletions

1
.gitignore vendored
View file

@ -9,3 +9,4 @@ __pycache__
/GPR/ue03/gpr_blatt03_7987847_werner.zip /GPR/ue03/gpr_blatt03_7987847_werner.zip
/GPR/ue05/7987847_gpr-blatt05.zip /GPR/ue05/7987847_gpr-blatt05.zip
/GPR/ue05/7987847_gpr-blatt10.zip

Binary file not shown.

7
GPR/ue10/Kleopatra.txt Normal file
View file

@ -0,0 +1,7 @@
Kleopatra (* 69 v. Chr. in Alexandria; † 30 v. Chr. ebenda) war eine der bekanntesten Herrscherinnen des antiken Ägyptens. Als letzte Pharaonin der Ptolemäer-Dynastie erlebte sie dramatische politische Umwälzungen und Intrigen.
Als Geliebte von Gaius Iulius Caesar und später von Marcus Antonius spielte Kleopatra eine entscheidende Rolle in den Machtkämpfen dieser Zeit. Nach dem Tod von Caesar im Jahr 44 v. Chr. kehrte sie nach Ägypten zurück und stand vor der Herausforderung, ihr Reich zu stabilisieren.
Die Schlacht bei Actium im Jahr 31 v. Chr. markierte einen Wendepunkt in ihrem Schicksal, als sie an der Seite von Marcus Antonius gegen Octavian (der spätere Kaiser Augustus) kämpfte und letztendlich unterlag. Nach dem Selbstmord von Antonius im Jahr 30 v. Chr. fiel Ägypten unter die Kontrolle von Augustus, der Kleopatra gefangen nahm.
Kleopatras Tod im Jahr 30 v. Chr. durch den Biss einer Kobra symbolisierte das Ende einer Ära und den Beginn der römischen Vorherrschaft über Ägypten. Ihre Lebensgeschichte bleibt bis heute faszinierend und hat zahlreiche kulturelle und literarische Werke inspiriert.

34
GPR/ue10/README.md.txt Normal file
View file

@ -0,0 +1,34 @@
__author__ = "7987847, Werner"
# Aufgabe 2 a) iii)
Mit Zeichenketten wie '52515' wird wie folgt umgegangen:
- Es werden die strings '52', '525', '25', '251', '51', '515' und '15' erkannt.
- Dies liegt daran, dass es keine Rolle spielt, ob vor oder nach der mehr-als-2-oder-3-stelligen Zahlenkette ein nicht numerisches Zeichen kommt. Somit enthält die Zeichenkette mehrere kürzere Zeichenketten
# Aufgabe 2 b)
Der reguläre Ausdruck stellt eine typische Email Adresse dar:
- ´^[A-Za-z0-9._%+-]+´: Beginnt mit mindestens einem alphanumerischen Zeichen oder den erlaubten Sonderzeichen (. _ % + -)
- `@`: Enthält das "@"-Symbol
- `[A-Za-z0-9.-]+`: Enthält mindestens ein alphanumerisches Zeichen oder einen Punkt zwischen "@" und der Domain
- `\.`: Enthält einen Punkt vor der Top-Level-Domain
- `[A-Z|a-z]{2,}$`: Endet mit mindestens zwei alphanumerischen Zeichen (Top-Level-Domain)
# Dokumentation *main.py*
Zur Nutzung muss eine kompatible Python version installiert sein.
Akzeptiert werden alle Python 3.x Versionen.
Das Programm kann mit dem Befehl `python3 main.py` im Ordner gestartet werden.
Nach dem Start wird die Datei `Kleopatra.txt` eingelesen und Kleopatra's weibliche Pronomen durch mänliche ausgetauscht.
Das Ergebnis wird ind er Konsole Ausgegeben.
Anschließend wird die Datei `Wortgitter_mitZahlen.txt` eingelesen und folgendes in der Konsole Ausgegeben:
i) Das Erste Vorkommen einer 0 gevolgt von einer Zahl und anschließend eines Buchstabens
ii) Alle Vorkommen aus i)
iii) Alle Zeichenfolgen aus 2 oder 3 Ziffern

View file

@ -0,0 +1,25 @@
17I7KJOU8HRUDIJ1P3YFFQX8ILOB46UKP4L7E9CKH94GN6PNKJ
LNBGM8P6WVDKGYOL2ZHBL5JK7DBLZK53S3TBCZRNLAT40S13II
UE8EHJ9VC9FW03YA68E6TUQS9IL56A560CC6YUVZO4ROAXH3SG
KPFS4ZKVVG0HRNC5L4XN1KVG9YYFA66WGBKOO04D0TA9U6363Q
IBSFLZZBM80DSYDN04P69UUZZPNVKD3U9PGFWJ5RY7LX304AOQ
GI7PRJFL5HG2T01WP5EUH7OET3KXLCL51DWJRV8VN9KMK91QQ6
LA1MQHRB9Z1EJ5T1TJR6EP97I9AQ59G6TQ7MZJDPLU2EZQ681C
0YR9CFQWKVKYYQHZ515ZP361UUWT363XYW2LRZLIVY3H3BG12H
GYB9LVGYUN4IYD83ARQQ3O49VA9LFHQF6D5B44YDCTIWVI1I0Z
B0E7BGWNR3GO85C8SO214H126JFB2QTJGVVOI6QTF7HXOCAXOL
1FN3XZKMWTFM5II80STDBIJS69C3GR46EJWHZVQZ8FMI8C4F8Z
LH0LPQBZIVGL6EGWRVNIZ0BWBD3SXKBQ52515QFPW42CIOCDAT
JX02RAYBAWB50CZQ2DPAHM0C3IC798SFWZF8HPVYR58R0QDTKZ
MIUY6R92RY8NSGUQ818VOZILM8XA552GGGTB22EK03OX1WFM8L
Z3DL0CQ1YD67ZSX4J8A3M52DHU0XEM7FSJUW13QMIK57T7IUNI
OJ82EROB735XA0RUGCK8FUAQSA6QKFURPRD6C2T5J0TLMPG4CB
7RSDZ70XZSV8MKMSU4S5Q5W3OWPD4LBM13RWEX2VLKC7ASGLNG
ML5KAQX11SP4VNF2XYT93U63RTMS4TXP09VNY0H4KYLZNQZ4SF
1OARDDAH1E06NN7C095JN5O2RWHB0CEN198I6TEABWPC26WUQR
XJRSDLYJ48I8S0C5VLA3KOM6JQLUB26KVYOW2INU3L58EWDUWH
311ZU721EN2HLE4QBL571NQZJQ0I9Y7GL2T2YWLXA6DO622TJO
2RFXMZLVCKA77LCQUQJ7X5I20NZ5G86EOECTY40R5J8YYBMYFM
KOQ52BOBOMZCNHC2POTRW5FITFU4GIG7J897DLEKBNAUXTNO7U
L06D55N9K6I27LCIOG6VWTH6HOO0ZRXZXQ4YUUPQ3QEMLFBOOC
TPB5C9EP39B8J8BCDJO2X3T3HFHN2055YLYIMCG8BTWI6YG9VO

66
GPR/ue10/main.py Normal file
View file

@ -0,0 +1,66 @@
'''GPR Übung 10 - Reguläre Ausdrücke'''
__author__ = "7987847, Werner"
import re
def cleopatra_change_gender():
'''
Lies den Text aus der Datei "Kleopatra.txt" ein und ersetze alle Vorkommen von "sie" durch "er".
Gib den modifizierten Text auf der Konsole aus.
'''
# Dateipfad zum Text
dateipfad = "Kleopatra.txt"
try:
# Text aus der Datei lesen
with open(dateipfad, 'r', encoding='utf-8') as datei:
text = datei.read()
# Verwende die sub()-Funktion, um "sie" durch "er" zu ersetzen
modifizierter_text = re.sub(r'\bsie\b', 'er', text, flags=re.IGNORECASE)
modifizierter_text = re.sub(r'\bIhre\b', 'Seine', modifizierter_text, flags=re.IGNORECASE)
# Gib den modifizierten Text auf der Konsole aus
print(modifizierter_text)
except FileNotFoundError:
print(f"Die Datei {dateipfad} wurde nicht gefunden.")
def find_patterns_in_text():
'''
Lies den Text aus der Datei "Wortgitter_mitZahlen.txt" ein und finde folgende Muster:
i) Findet das erste Vorkommen von Zeichenfolgen, die mit einer Null starten,
gefolgt von einer Zahl und einem Buchstaben
ii) Findet alle Vorkommen von Zeichenfolgen mit 2 oder 3 Zahlen hintereinander
Gib die gefundenen Muster auf der Konsole aus.
'''
# Dateipfad zum Text
dateipfad = "Wortgitter_mitZahlen.txt"
try:
# Text aus der Datei lesen
with open(dateipfad, 'r', encoding='utf-8') as datei:
text = datei.read()
# i) Findet das erste Vorkommen von Zeichenfolgen, die mit einer Null starten,
# gefolgt von einer Zahl und einem Buchstaben
pattern_i = re.findall(r'0[0-9][A-Za-z]', text)
print("i. Erstes gefundenes Muster:")
print(pattern_i[0] if len(pattern_i) > 0 else "Kein Muster gefunden.")
# ii) Alle vorkommen aus i)
print("\nii. Alle gefundenen Muster:")
print(pattern_i)
# iii) Findet alle Vorkommen von Zeichenfolgen mit 2 oder 3 Zahlen hintereinander
pattern_iii = re.findall(r'\d{2,3}', text)
print("\niii. Gefundene Muster:")
print(pattern_iii)
except FileNotFoundError:
print(f"Die Datei {dateipfad} wurde nicht gefunden.")
if __name__ == "__main__":
cleopatra_change_gender()
find_patterns_in_text()