Silbentrennungsprogramm
Verfasst: Mittwoch 12. November 2025, 22:01
Hallo,
ich bin neu und habe es mir zur Aufgabe gemacht, ein Programm zu schreiben, dass eine .txt einliest, die Zeilen und Wörter trennt und mir dann nach einigen von mir festgelegten Regeln "-" einfügt. Die Regeln sind: Der erste und letzte Buchstabe dürfen nicht abgetrennt werden, ein wort kann zwischen zwei Konsonanten getrennt werden, bei drei aufeinanderfolgenden Konsonanten kann nur nach dem ersten Konsonanten getrennt werden und ein Wort kann nach einem Vokal getrennt werden, wenn nicht zwei Konsonanten folgen.
Bisher habe ich diesen Code:
Ich bekomme aber nicht die Antwort, die ich erwarte. Kann mir jemand erkären, woran das liegt und wie ich die von mir genannten Regeln hinzufügen kann, damit der Code noch funktioniert?
Vielen Dannk im Vorraus
HeroLinkGHG
PS: Ich weiß, dass die Verwendung von globals() und vielen anderen Sachen nicht schön ist, aber diese würde ich gerne behalten, damit ich das an meinem Code besser nachvollziehen kann.
ich bin neu und habe es mir zur Aufgabe gemacht, ein Programm zu schreiben, dass eine .txt einliest, die Zeilen und Wörter trennt und mir dann nach einigen von mir festgelegten Regeln "-" einfügt. Die Regeln sind: Der erste und letzte Buchstabe dürfen nicht abgetrennt werden, ein wort kann zwischen zwei Konsonanten getrennt werden, bei drei aufeinanderfolgenden Konsonanten kann nur nach dem ersten Konsonanten getrennt werden und ein Wort kann nach einem Vokal getrennt werden, wenn nicht zwei Konsonanten folgen.
Bisher habe ich diesen Code:
Code: Alles auswählen
import os
Vokale = ["a", "e", "i", "o", "u","A", "E", "I", "O", "U", "ä", "ö", "ü", "Ä", "Ö", "Ü"]
Konsonanten = ["b", "B", "c", "C", "d", "D", "f", "F", "g", "G", "h", "H", "j", "J", "k", "K", "l", "L", "m", "M", "n", "N", "p", "P", "q", "Q", "r", "R", "s", "S", "t", "T", "v", "V", "w", "W", "x", "X", "y", "Y", "z", "Z", "ß"]
while True:
getrennterText =[]
print("Bitte geben Sie den Dateipfad der zu öfnnenden Datei an.")
Dateipfad = input()
with open (Dateipfad, mode="r") as D:
Dateiinhalt = D.read().splitlines()
Dateilänge = len(Dateiinhalt)
aZeile = 0
for i in range(0, Dateilänge):
aWort = 0
Zeileninhalt = Dateiinhalt[aZeile].split(" ")
Name_Zeileninhalt = f"Z{aZeile + 1}"
if Name_Zeileninhalt not in globals():
globals()[Name_Zeileninhalt] = []
globals()[Name_Zeileninhalt].append(Zeileninhalt)
Zeilenlänge = len(Zeileninhalt)
for j in range(0, Zeilenlänge):
getrennteZeile = []
Trennung = []
Wortinhalt = Zeileninhalt[aWort].split()
Name_Wortinhalt = f"{Name_Zeileninhalt}W{aWort + 1}"
if Name_Wortinhalt not in globals():
globals()[Name_Wortinhalt] = []
globals()[Name_Wortinhalt].append(Wortinhalt)
Wortlänge = len(Wortinhalt)
for k in range(1, Wortlänge - 1):
aBuchstabe = Wortinhalt[k].lower()
aBuchstabe_plus_eins = Wortinhalt[k + 1].lower()
aBuchstabe_plus_zwei = Wortinhalt[k + 2].lower()
aBuchstabe_minus_eins = Wortinhalt[k - 1].lower()
aBuchstabe_minus_zwei = Wortinhalt[k - 2].lower()
if aBuchstabe_minus_eins in Vokale:
if aBuchstabe in Konsonanten and aBuchstabe_plus_eins in Konsonanten and aBuchstabe_minus_eins in Konsonanten:
pass
else:
Trennung.append(k)
if aBuchstabe in Vokale and aBuchstabe_plus_eins in Vokale:
Trennung.append(k)
getrenntesWort = ""
for l in range(Wortlänge):
if l in Trennung:
getrenntesWort += "-"
getrenntesWort += Wortinhalt[l]
getrennteZeile.append(getrenntesWort)
getrennterText.append(getrennteZeile)
aWort = aWort + 1
aZeile = aZeile + 1
print(getrennterText)Vielen Dannk im Vorraus
HeroLinkGHG
PS: Ich weiß, dass die Verwendung von globals() und vielen anderen Sachen nicht schön ist, aber diese würde ich gerne behalten, damit ich das an meinem Code besser nachvollziehen kann.