mehr farbe in ausgabe und fix für schlüsselwortfeld

This commit is contained in:
2025-07-29 19:15:33 +02:00
parent 45e16dcbe7
commit e3ed8c7428
3 changed files with 175 additions and 169 deletions

View File

@@ -378,22 +378,23 @@ option = st.sidebar.radio("hidden_label",
# Optionales einzeiliges Eingabefeld nur für bestimmte Funktionen # Optionales einzeiliges Eingabefeld nur für bestimmte Funktionen
additional_parameter = None additional_parameter = None
if option in ["Vigenere-Chiffre", "Wolseley-Chiffre", "Autokey-Chiffre", "Polybios kodieren", "Polybios dekodieren"]: if ("Vigenere-Chiffre" or "Wolseley-Chiffre" or "Autokey-Chiffre" or "Polybios kodieren" or
"Polybios dekodieren" in option):
additional_parameter = st.text_input( additional_parameter = st.text_input(
"Schlüsselwort:", "Schlüsselwort:",
placeholder="Schlüsselwort hier eingeben" placeholder="Schlüsselwort hier eingeben"
) )
elif option in ["Mono.-Substitution"]: elif "Mono.-Substitution" in option:
additional_parameter = st.text_input( additional_parameter = st.text_input(
"Schlüsselwort/Schlüsselalphabet:", "Schlüsselwort/Schlüsselalphabet:",
placeholder="Schlüsselwort/Schlüsselalphabet hier eingeben" placeholder="Schlüsselwort/Schlüsselalphabet hier eingeben"
) )
elif option in ["Jägerzaun kodieren", "Jägerzaun dekodieren"]: elif "Jägerzaun kodieren" or "Jägerzaun dekodieren" in option:
additional_parameter = st.text_input( additional_parameter = st.text_input(
"Schlüsselfeld:", "Schlüsselfeld:",
placeholder="Schlüsselzahl hier eingeben" placeholder="Schlüsselzahl hier eingeben"
) )
elif option in ["ADFGX kodieren", "ADFGX dekodieren", "ADFGVX kodieren", "ADFGVX dekodieren"]: elif "ADFGX kodieren" or "ADFGX dekodieren" or "ADFGVX kodieren" or "ADFGVX dekodieren" in option:
additional_parameter = st.text_input( additional_parameter = st.text_input(
"Passwörter:", "Passwörter:",
placeholder="PasswortEins, PasswortZwei" placeholder="PasswortEins, PasswortZwei"

View File

@@ -237,7 +237,7 @@ def remorse_germandic(eingabetext):
ualphabet["...--.."] = "ß" ualphabet["...--.."] = "ß"
eingabetext = eingabetext.rstrip() eingabetext = eingabetext.rstrip()
wbfile = open("./data/german.dic", "r", encoding="iso-8859-15") wbfile = open("./data/german.dic", "r", encoding="iso-8859-15")
ausgabetext = "_der eingegebene Morsecode kann für folgendes stehen:_ \n" ausgabetext = ":blue[der eingegebene Morsecode kann für folgendes stehen:] \n"
if eingabetext in ualphabet: if eingabetext in ualphabet:
ausgabetext += ualphabet[eingabetext] + " \n" ausgabetext += ualphabet[eingabetext] + " \n"
for zeile in wbfile: for zeile in wbfile:
@@ -264,7 +264,7 @@ def t9_germandic(eingabetext):
'-': '1', ',': '1', '+': '0', ')': '1', '(': '1', 'SS': '7'} '-': '1', ',': '1', '+': '0', ')': '1', '(': '1', 'SS': '7'}
eingabetext = eingabetext.rstrip() eingabetext = eingabetext.rstrip()
wbfile = open("./data/german.dic", "r", encoding="iso-8859-15") wbfile = open("./data/german.dic", "r", encoding="iso-8859-15")
ausgabetext = "_der eingegebene T9-Code kann für folgendes stehen:_ \n" ausgabetext = ":blue[der eingegebene T9-Code kann für folgendes stehen:] \n"
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
mzeile = "" mzeile = ""

View File

@@ -32,7 +32,7 @@ def cesar_all(eingabetext):
atxt = atxt + abc[j + r - 26] atxt = atxt + abc[j + r - 26]
else: else:
atxt = atxt + abc[j + r] atxt = atxt + abc[j + r]
ausgabe += f"__{r:02}:__ {atxt} \n" ausgabe += f":blue[{r:02}:] {atxt} \n"
return ausgabe return ausgabe
def buchstabenwortwert(eingabetext): def buchstabenwortwert(eingabetext):
@@ -85,21 +85,21 @@ def buchstabenwortwert(eingabetext):
ausgabe += atxt + " \n" ausgabe += atxt + " \n"
ausgabe += '| | |\n' ausgabe += '| | |\n'
ausgabe += '|----|----|\n' ausgabe += '|----|----|\n'
ausgabe += "|_Buchstabenwerte:_|" ausgabe += "|:blue[Buchstabenwerte:]|"
ausgabe += az[0:-1] + "|\n" ausgabe += az[0:-1] + "|\n"
ausgabe += "|_Buchstabenwortwerte:_|" ausgabe += "|:blue[Buchstabenwortwerte:]|"
ausgabe += eworttxt[0:-1] + "|\n" ausgabe += eworttxt[0:-1] + "|\n"
ausgabe += "|_Summe aller Buchstabenwerte:_|" ausgabe += "|:blue[Summe aller Buchstabenwerte:]|"
ausgabe += str(wortsumme) + "|\n" ausgabe += str(wortsumme) + "|\n"
ausgabe += "|_Quersumme der Summe aller Buchstabenwerte / iterierte Quersumme:_|" ausgabe += "|:blue[Quersumme der Summe aller Buchstabenwerte / iterierte Quersumme:]|"
ausgabe += str(helper.q_sum(wortsumme)) + " / " + str(helper.iq_sum(wortsumme)) + "|\n" ausgabe += str(helper.q_sum(wortsumme)) + " / " + str(helper.iq_sum(wortsumme)) + "|\n"
ausgabe += "|_Buchstabenanzahl pro Wort:_|" ausgabe += "|:blue[Buchstabenanzahl pro Wort:]|"
ausgabe += banzwtxt[0:-1] + "|\n" ausgabe += banzwtxt[0:-1] + "|\n"
ausgabe += "|_Gesamtanzahl aller Buchstaben:_|" ausgabe += "|:blue[Gesamtanzahl aller Buchstaben:]|"
ausgabe += str(banzahla) + "|\n" ausgabe += str(banzahla) + "|\n"
ausgabe += "|_Wortprodukte(0 wenn kein Buchstabe gefunden):_|" ausgabe += "|:blue[Wortprodukte(0 wenn kein Buchstabe gefunden):]|"
ausgabe += ewortptxt[0:-1] + "|\n" ausgabe += ewortptxt[0:-1] + "|\n"
ausgabe += "|_Buchstabenwert-Produkt:(Nullen werden ignoriert):_|" ausgabe += "|:blue[Buchstabenwert-Produkt:(Nullen werden ignoriert):]|"
ausgabe += str(wortprodukt) + "|\n" ausgabe += str(wortprodukt) + "|\n"
return ausgabe return ausgabe
@@ -123,10 +123,10 @@ def buchstabenwert_zu_text(eingabetext):
try: try:
ausz = int(eingabetext) ausz = int(eingabetext)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!\n" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!]"
else: else:
if ausz not in bw: if ausz not in bw:
return "Die eingegebene Zahl ist kein gültiger Buchstabenwert!\n" return ":red[Die eingegebene Zahl ist kein gültiger Buchstabenwert!]"
else: else:
return bw[ausz] return bw[ausz]
else: else:
@@ -145,9 +145,9 @@ def buchstabenwert_zu_text(eingabetext):
else: else:
ignor = ignor + str(z) + " " ignor = ignor + str(z) + " "
if ignor != "": if ignor != "":
ausgabe_text += "_Achtung folgendes wurde ignoriert:_ \n" ausgabe_text += ":red[Achtung folgendes wurde ignoriert:] \n"
ausgabe_text += ignor + " \n \n" ausgabe_text += ignor + " \n \n"
ausgabe_text += "_umgewandelte Zeichen:_ \n" ausgabe_text += ":blue[umgewandelte Zeichen:] \n"
ausgabe_text += atxt ausgabe_text += atxt
return ausgabe_text return ausgabe_text
@@ -174,8 +174,8 @@ def zeichenanzahl(eingabetext):
for key in anzahl: for key in anzahl:
s.append(key) s.append(key)
s.sort() s.sort()
ausgabetext += f"Es wurden {len(anzahl)} unterschiedliche Zeichen gefunden. \n" ausgabetext += f"Es wurden __:orange[{len(anzahl)}]__ unterschiedliche Zeichen gefunden. \n"
ausgabetext += "| Zeichen | Anzahl |\n|----|----|\n" ausgabetext += "| :blue[Zeichen] | :blue[Anzahl] |\n|----|----|\n"
for i in s: for i in s:
if ord(i) == 9: if ord(i) == 9:
ausgabetext += f"|TAB|{anzahl[i]}|\n" ausgabetext += f"|TAB|{anzahl[i]}|\n"
@@ -203,9 +203,9 @@ def quersummen(eingabetext):
try: try:
ausz = int(eingabetext) ausz = int(eingabetext)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!]"
else: else:
return f"_Quersumme:_ {helper.q_sum(ausz)} \n_iterierte Quersumme:_ {helper.iq_sum(ausz)}" return f" :blue[Quersumme:] {helper.q_sum(ausz)} \n:blue[iterierte Quersumme:] {helper.iq_sum(ausz)}"
else: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -221,11 +221,11 @@ def quersummen(eingabetext):
qtxt = qtxt + str(helper.q_sum(az)) + "/" qtxt = qtxt + str(helper.q_sum(az)) + "/"
iqtxt = iqtxt + str(helper.iq_sum(az)) + "/" iqtxt = iqtxt + str(helper.iq_sum(az)) + "/"
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" ausgabetext += ":red[Achtung nicht erkannte Zeichen:] \n"
ausgabetext += ignor + " \n \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_Quersummen:_ \n" ausgabetext += ":blue[Quersummen:] \n"
ausgabetext += qtxt[:-1] + " \n \n" ausgabetext += qtxt[:-1] + " \n \n"
ausgabetext += "_iterierte Quersummen_ \n" ausgabetext += ":blue[iterierte Quersummen] \n"
ausgabetext += iqtxt[:-1] ausgabetext += iqtxt[:-1]
return ausgabetext return ausgabetext
@@ -252,17 +252,17 @@ def einschluss_count(eingabetext):
wz_ohne += 1 wz_ohne += 1
wortsummenliste_ohne.append(wz_ohne) wortsummenliste_ohne.append(wz_ohne)
wortsummenliste_mit.append(wz_mit) wortsummenliste_mit.append(wz_mit)
ausgabetext = "__mit 4__ \n" ausgabetext = "__:orange[mit 4]__ \n"
ausgabetext += "_insgesamt gefundene Einschlüsse:_ " ausgabetext += ":blue[insgesamt gefundene Einschlüsse:] "
ausgabetext += f"{sum(wortsummenliste_mit)} \n" ausgabetext += f"{sum(wortsummenliste_mit)} \n"
ausgabetext += "_Einschlüsse pro Wort:_ " ausgabetext += ":blue[Einschlüsse pro Wort:] "
for z in wortsummenliste_mit: for z in wortsummenliste_mit:
ausgabetext += f"{z} " ausgabetext += f"{z} "
ausgabetext += " \n \n" ausgabetext += " \n \n"
ausgabetext += "__ohne 4__ \n" ausgabetext += "__:orange[ohne 4]__ \n"
ausgabetext += "_insgesamt gefundene Einschlüsse:_ " ausgabetext += ":blue[insgesamt gefundene Einschlüsse:] "
ausgabetext += f"{sum(wortsummenliste_ohne)} \n" ausgabetext += f"{sum(wortsummenliste_ohne)} \n"
ausgabetext += "_Einschlüsse pro Wort:_ " ausgabetext += ":blue[Einschlüsse pro Wort:] "
for z in wortsummenliste_ohne: for z in wortsummenliste_ohne:
ausgabetext += f"{z} " ausgabetext += f"{z} "
return ausgabetext return ausgabetext
@@ -289,7 +289,7 @@ def morse_to_abc(eingabetext):
if sign == "/": if sign == "/":
atxt = atxt + " " atxt = atxt + " "
elif sign not in alphabet: elif sign not in alphabet:
atxt = atxt + "#" atxt = atxt + ":red[#]"
else: else:
atxt = atxt + alphabet[sign] atxt = atxt + alphabet[sign]
return atxt return atxt
@@ -416,7 +416,7 @@ def dez_to_ascii(eingabetext):
try: try:
ausz = int(eingabetext) ausz = int(eingabetext)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!]"
else: else:
return chr(ausz) return chr(ausz)
else: else:
@@ -432,9 +432,9 @@ def dez_to_ascii(eingabetext):
else: else:
atxt = atxt + chr(az) atxt = atxt + chr(az)
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" ausgabetext += ":red[Achtung nicht erkannte Zeichen:] \n"
ausgabetext += ignor + " \n \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += ":blue[umgewandelte Zeichen:] \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -465,7 +465,7 @@ def hex_to_ascii(eingabetext):
try: try:
ausz = int(eingabetext, 16) ausz = int(eingabetext, 16)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!]"
else: else:
return chr(ausz) return chr(ausz)
else: else:
@@ -481,9 +481,9 @@ def hex_to_ascii(eingabetext):
else: else:
atxt = atxt + chr(az) atxt = atxt + chr(az)
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" ausgabetext += ":red[Achtung nicht erkannte Zeichen] \n"
ausgabetext += ignor + " \n \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += ":blue[umgewandelte Zeichen:] \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -513,7 +513,7 @@ def octal_to_ascii(eingabetext):
try: try:
ausz = int(eingabetext, 8) ausz = int(eingabetext, 8)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!]"
else: else:
return chr(ausz) return chr(ausz)
else: else:
@@ -529,9 +529,9 @@ def octal_to_ascii(eingabetext):
else: else:
atxt = atxt + chr(az) atxt = atxt + chr(az)
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" ausgabetext += ":red[Achtung nicht erkannte Zeichen] \n"
ausgabetext += ignor + " \n \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += ":blue[umgewandelte Zeichen:] \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -553,8 +553,8 @@ def ascii_to_bin8(eingabetext):
z = [] z = []
for i in eingabetext: for i in eingabetext:
if ord(i) > 255: if ord(i) > 255:
return ("Sorry der Eingabetext enthält Zeichen,welche sich nicht mit 8 bit in binär darstellen " return (":red[Sorry der Eingabetext enthält Zeichen,welche sich nicht mit 8 bit in binär darstellen "
"lassen!") "lassen!]")
z.append("{:0>8b}".format(ord(i))) z.append("{:0>8b}".format(ord(i)))
return ' '.join(z) return ' '.join(z)
@@ -574,7 +574,7 @@ def bin_to_ascii(eingabetext):
try: try:
ausz = int(eingabetext, 2) ausz = int(eingabetext, 2)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!]"
else: else:
return chr(ausz) return chr(ausz)
else: else:
@@ -590,9 +590,9 @@ def bin_to_ascii(eingabetext):
else: else:
atxt = atxt + chr(az) atxt = atxt + chr(az)
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" ausgabetext += ":red[Achtung nicht erkannte Zeichen] \n"
ausgabetext += ignor + " \n \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += ":blue[umgewandelte Zeichen:] \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -624,11 +624,11 @@ def zahlwortsuche_de(eingabetext):
if tt: if tt:
atxt = atxt + b atxt = atxt + b
if atxt == "": if atxt == "":
return "Leider keine Zahlwörter gefunden!" return ":red[Leider keine Zahlwörter gefunden!]"
else: else:
ausgabetext = "_Gefundene Zahlwörter:_ \n" ausgabetext = ":blue[Gefundene Zahlwörter:] \n"
ausgabetext += atxt + " \n \n" ausgabetext += atxt + " \n \n"
ausgabetext += "_Eingangstext:_ \n" ausgabetext += ":blue[Eingangstext:] \n"
ausgabetext += ntxt ausgabetext += ntxt
return ausgabetext return ausgabetext
@@ -661,11 +661,11 @@ def zahlwortsuche_en(eingabetext):
if tt: if tt:
atxt = atxt + b atxt = atxt + b
if atxt == "": if atxt == "":
return "Leider keine Zahlwörter gefunden!" return ":red[Leider keine Zahlwörter gefunden!]"
else: else:
ausgabetext = "_Gefundene Zahlwörter:_ \n" ausgabetext = ":blue[Gefundene Zahlwörter:] \n"
ausgabetext += atxt + " \n \n" ausgabetext += atxt + " \n \n"
ausgabetext += "_Eingangstext:_ \n" ausgabetext += ":blue[Eingangstext:] \n"
ausgabetext += ntxt ausgabetext += ntxt
return ausgabetext return ausgabetext
@@ -750,7 +750,7 @@ def kenny_raten(eingabetext):
tri = txt2[i:i + 3] tri = txt2[i:i + 3]
if tri in wbk: if tri in wbk:
atxt = atxt + wbk[tri] atxt = atxt + wbk[tri]
ausgabetext += f"_{p}_ \n" ausgabetext += f":blue[{p}] \n"
ausgabetext += f"{atxt} \n \n" ausgabetext += f"{atxt} \n \n"
return ausgabetext return ausgabetext
@@ -779,12 +779,12 @@ def primzahlalphabet_dekodieren(eingabetext):
try: try:
ausz = int(eingabetext) ausz = int(eingabetext)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!]"
else: else:
if ausz in pdict: if ausz in pdict:
return pdict[ausz] return pdict[ausz]
else: else:
return eingabetext + " ist keine Primzahl oder größer als 1 Million!" return f":red[{eingabetext} ist keine Primzahl oder größer als 1 Million!]"
else: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -801,9 +801,9 @@ def primzahlalphabet_dekodieren(eingabetext):
else: else:
ignor = ignor + str(z) + " " ignor = ignor + str(z) + " "
if ignor != "": if ignor != "":
ausgabetext += "_ignoriert wurde:_ \n" ausgabetext += ":red[ignoriert wurde:] \n"
ausgabetext += ignor + " \n \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zahlen:_ \n" ausgabetext += ":blue[umgewandelte Zahlen:] \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -815,16 +815,16 @@ def primzahlpruefen(eingabetext):
try: try:
ausz = int(eingabetext) ausz = int(eingabetext)
except ValueError: except ValueError:
return "Keine Zahl erkannt!" return ":red[Keine Zahl erkannt!]"
else: else:
if ausz > 1299709: if ausz > 1299709:
return ("Sorry, aber ich mag nur die ersten 100,000 Primzahlen, das sind Zahlen bis maximal " return (":red[Sorry, aber ich mag nur die ersten 100,000 Primzahlen, das sind Zahlen bis maximal "
"1,299,709 !") "1,299,709 !]")
primes = helper.primzahlliste(1299710) primes = helper.primzahlliste(1299710)
if ausz not in primes: if ausz not in primes:
return f"{ausz:,} ist keine Primzahl" return f":orange[{ausz:,}] ist keine Primzahl"
else: else:
return f"{ausz:,} ist die {primes.index(ausz) + 1:,}. Primzahl" return f":orange[{ausz:,}] ist die :orange[{primes.index(ausz) + 1:,}.] Primzahl"
def nte_primzahl(eingabetext): def nte_primzahl(eingabetext):
eingabetext = eingabetext.rstrip() eingabetext = eingabetext.rstrip()
@@ -834,12 +834,12 @@ def nte_primzahl(eingabetext):
try: try:
ausz = int(eingabetext) ausz = int(eingabetext)
except ValueError: except ValueError:
return "Keine Zahl erkannt!" return ":red[Keine Zahl erkannt!]"
if ausz > 100000: if ausz > 100000:
return "Sorry, aber ich mag nur die ersten 100,000 Primzahlen, das sind Zahlen bis maximal 1,299,709 !" return ":red[Sorry, aber ich mag nur die ersten 100,000 Primzahlen, das sind Zahlen bis maximal 1,299,709 !]"
else: else:
primes = helper.primzahlliste(1299710) primes = helper.primzahlliste(1299710)
return f"Die {ausz:,}. Primzahl lautet: {primes[ausz - 1]:,}" return f"Die :orange[{ausz:,}.] Primzahl lautet: :orange[{primes[ausz - 1]:,}]"
def primfaktoren(eingabetext): def primfaktoren(eingabetext):
eingabetext = eingabetext.rstrip() eingabetext = eingabetext.rstrip()
@@ -849,20 +849,20 @@ def primfaktoren(eingabetext):
try: try:
n = int(eingabetext) n = int(eingabetext)
except ValueError: except ValueError:
return "Es konnte leider keine Zahl erkannt werden." return ":red[Es konnte leider keine Zahl erkannt werden.]"
faktoren = [] faktoren = []
for i in chain([2], range(3, n // 2 + 1, 2)): for i in chain([2], range(3, n // 2 + 1, 2)):
if i > 100000000: if i > 100000000:
return ("Sorry, aber die Primfaktorensuche wurde abgebrochen, da mindestens 1 Faktor größer als " return (":red[Sorry, aber die Primfaktorensuche wurde abgebrochen, da mindestens 1 Faktor größer als "
"100 Millionen ist.") "100 Millionen ist.]")
while n % i == 0: while n % i == 0:
faktoren.append(i) faktoren.append(i)
n = n // i n = n // i
if i > n: if i > n:
break break
out = f"_Die Zahl {eingabetext} hat folgende Primfaktoren:_ \n" out = f"_Die Zahl :orange[{eingabetext}] hat folgende Primfaktoren:_ \n"
if not faktoren: if not faktoren:
return f"Die Zahl {eingabetext} ist eine Primzahl!!" return f"Die Zahl :orange[{eingabetext}] ist eine Primzahl!!"
else: else:
for z in faktoren: for z in faktoren:
out += str(z) + ", " out += str(z) + ", "
@@ -884,9 +884,9 @@ def dez_to_hex_oct_bin(eingabetext):
try: try:
ausz = int(eingabetext) ausz = int(eingabetext)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!]"
else: else:
return "Dez: {0:} \nHEX: {0:X} \nOCT: {0:o} \nBIN: {0:b}".format(ausz) return ":blue[DEZ:] {0:} \n:blue[HEX:] {0:X} \n:blue[OCT:] {0:o} \n:blue[BIN:] {0:b}".format(ausz)
else: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -902,11 +902,11 @@ def dez_to_hex_oct_bin(eingabetext):
octtxt = octtxt + "{:o}".format(az) + "/" octtxt = octtxt + "{:o}".format(az) + "/"
bintxt = bintxt + "{:b}".format(az) + "/" bintxt = bintxt + "{:b}".format(az) + "/"
if ignor != "": if ignor != "":
ausgabetext += f"_Achtung nicht erkannte Zeichen:_ {ignor} \n" ausgabetext += f":red[Achtung nicht erkannte Zeichen] {ignor} \n"
ausgabetext += f"_DEZ:_ {deztxt[:-1]} \n" ausgabetext += f":blue[DEZ:] {deztxt[:-1]} \n"
ausgabetext += f"_HEX:_ {hextxt[:-1]} \n" ausgabetext += f":blue[HEX:] {hextxt[:-1]} \n"
ausgabetext += f"_OCT:_ {octtxt[:-1]} \n" ausgabetext += f":blue[OCT:] {octtxt[:-1]} \n"
ausgabetext += f"_BIN:_ {bintxt[:-1]} \n" ausgabetext += f":blue[BIN:] {bintxt[:-1]} \n"
return ausgabetext return ausgabetext
def hex_to_dez_oct_bin(eingabetext): def hex_to_dez_oct_bin(eingabetext):
@@ -925,9 +925,9 @@ def hex_to_dez_oct_bin(eingabetext):
try: try:
ausz = int(eingabetext, 16) ausz = int(eingabetext, 16)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!]"
else: else:
return "HEX: {0:X} \nDez: {0:} \nOCT: {0:o} \nBIN: {0:b}".format(ausz) return ":blue[HEX:] {0:X} \n:blue[DEZ:] {0:} \n:blue[OCT:] {0:o} \n:blue[BIN:] {0:b}".format(ausz)
else: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -943,11 +943,11 @@ def hex_to_dez_oct_bin(eingabetext):
octtxt = octtxt + "{:o}".format(az) + "/" octtxt = octtxt + "{:o}".format(az) + "/"
bintxt = bintxt + "{:b}".format(az) + "/" bintxt = bintxt + "{:b}".format(az) + "/"
if ignor != "": if ignor != "":
ausgabetext += f"_Achtung nicht erkannte Zeichen:_ {ignor} \n" ausgabetext += f":red[Achtung nicht erkannte Zeichen] {ignor} \n"
ausgabetext += f"_HEX:_ {hextxt[:-1]} \n" ausgabetext += f":blue[HEX:] {hextxt[:-1]} \n"
ausgabetext += f"_DEZ:_ {deztxt[:-1]} \n" ausgabetext += f":blue[DEZ:] {deztxt[:-1]} \n"
ausgabetext += f"_OCT:_ {octtxt[:-1]} \n" ausgabetext += f":blue[OCT:] {octtxt[:-1]} \n"
ausgabetext += f"_BIN:_ {bintxt[:-1]} \n" ausgabetext += f":blue[BIN:] {bintxt[:-1]} \n"
return ausgabetext return ausgabetext
def oct_to_hex_dez_bin(eingabetext): def oct_to_hex_dez_bin(eingabetext):
@@ -966,9 +966,9 @@ def oct_to_hex_dez_bin(eingabetext):
try: try:
ausz = int(eingabetext, 8) ausz = int(eingabetext, 8)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!]"
else: else:
return "OCT: {0:o} \nHEX: {0:X} \nDez: {0:} \nBIN: {0:b}".format(ausz) return ":blue[OCT:] {0:o} \n:blue[HEX:] {0:X} \n:blue[DEZ:] {0:} \n:blue[BIN:] {0:b}".format(ausz)
else: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -984,11 +984,11 @@ def oct_to_hex_dez_bin(eingabetext):
octtxt = octtxt + "{:o}".format(az) + "/" octtxt = octtxt + "{:o}".format(az) + "/"
bintxt = bintxt + "{:b}".format(az) + "/" bintxt = bintxt + "{:b}".format(az) + "/"
if ignor != "": if ignor != "":
ausgabetext += f"_Achtung nicht erkannte Zeichen:_ {ignor} \n" ausgabetext += f":red[Achtung nicht erkannte Zeichen] {ignor} \n"
ausgabetext += f"_OCT:_ {octtxt[:-1]} \n" ausgabetext += f":blue[OCT:] {octtxt[:-1]} \n"
ausgabetext += f"_HEX:_ {hextxt[:-1]} \n" ausgabetext += f":blue[HEX:] {hextxt[:-1]} \n"
ausgabetext += f"_DEZ:_ {deztxt[:-1]} \n" ausgabetext += f":blue[DEZ:] {deztxt[:-1]} \n"
ausgabetext += f"_BIN:_ {bintxt[:-1]} \n" ausgabetext += f":blue[BIN:] {bintxt[:-1]} \n"
return ausgabetext return ausgabetext
def bin_to_hex_dez_oct(eingabetext): def bin_to_hex_dez_oct(eingabetext):
@@ -1007,9 +1007,9 @@ def bin_to_hex_dez_oct(eingabetext):
try: try:
ausz = int(eingabetext, 2) ausz = int(eingabetext, 2)
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" return ":red[Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!]"
else: else:
return "BIN: {0:b} \nHEX: {0:X} \nDez: {0:} \nOCT: {0:o}".format(ausz) return ":blue[BIN:] {0:b} \n:blue[HEX:] {0:X} \n:blue[DEZ:] {0:} \n:blue[OCT:] {0:o}".format(ausz)
else: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -1025,11 +1025,11 @@ def bin_to_hex_dez_oct(eingabetext):
octtxt = octtxt + "{:o}".format(az) + "/" octtxt = octtxt + "{:o}".format(az) + "/"
bintxt = bintxt + "{:b}".format(az) + "/" bintxt = bintxt + "{:b}".format(az) + "/"
if ignor != "": if ignor != "":
ausgabetext += f"_Achtung nicht erkannte Zeichen:_ {ignor} \n" ausgabetext += f":red[Achtung nicht erkannte Zeichen] {ignor} \n"
ausgabetext += f"_BIN:_ {bintxt[:-1]} \n" ausgabetext += f":blue[BIN:] {bintxt[:-1]} \n"
ausgabetext += f"_HEX:_ {hextxt[:-1]} \n" ausgabetext += f":blue[HEX:] {hextxt[:-1]} \n"
ausgabetext += f"_DEZ:_ {deztxt[:-1]} \n" ausgabetext += f":blue[DEZ:] {deztxt[:-1]} \n"
ausgabetext += f"_OCT:_ {octtxt[:-1]} \n" ausgabetext += f":blue[OCT:] {octtxt[:-1]} \n"
return ausgabetext return ausgabetext
def abc_to_tomtom(eingabetext): def abc_to_tomtom(eingabetext):
@@ -1053,9 +1053,9 @@ def abc_to_tomtom(eingabetext):
else: else:
atxt = atxt + alphabet[b.lower()] atxt = atxt + alphabet[b.lower()]
if ignor != "": if ignor != "":
ausgabetext += "_ignorierte Zeichen:_ \n" ausgabetext += ":red[ignorierte Zeichen:] \n"
ausgabetext += ignor + " \n \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_kodierter Text:_ \n" ausgabetext += ":blue[kodierter Text:] \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -1105,9 +1105,9 @@ def text_to_slashpipe(eingabetext):
else: else:
atxt = atxt + alphabet[b.lower()] atxt = atxt + alphabet[b.lower()]
if ignor != "": if ignor != "":
ausgabetext += "_ignorierte Zeichen:_ \n" ausgabetext += ":red[ignorierte Zeichen:] \n"
ausgabetext += ignor + " \n \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_kodierter Text:_ \n" ausgabetext += ":blue[kodierter Text:] \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -1167,7 +1167,7 @@ def periodensystem(eingabetext):
if eingabetext in um_pse: if eingabetext in um_pse:
return str(um_pse[eingabetext]) return str(um_pse[eingabetext])
else: else:
return "Keine gültige Eingabe erkannt!" return ":red[Keine gültige Eingabe erkannt!]"
else: else:
return pse[ausz] return pse[ausz]
else: else:
@@ -1182,7 +1182,7 @@ def periodensystem(eingabetext):
az = int(z) az = int(z)
except ValueError: except ValueError:
if z in um_pse: if z in um_pse:
atxt3 += z + ":" + str(um_pse[z]) + " " atxt3 += f"|{z}|{str(um_pse[z])}|\n"
else: else:
ignor = ignor + z + " " ignor = ignor + z + " "
else: else:
@@ -1192,13 +1192,13 @@ def periodensystem(eingabetext):
else: else:
ignor = ignor + z + " " ignor = ignor + z + " "
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" + ignor + " \n \n" ausgabetext += ":red[Achtung nicht erkannte Zeichen] \n" + ignor + " \n \n"
if atxt != "": if atxt != "":
ausgabetext += "_Symbole:_ \n" + atxt + " \n \n" ausgabetext += ":blue[Symbole:] \n" + atxt + " \n \n"
if atxt2 != "": if atxt2 != "":
ausgabetext += "_Nur Anfangsbuchstaben:_ \n" + atxt2 + " \n \n" ausgabetext += ":blue[Nur Anfangsbuchstaben:] \n" + atxt2 + " \n \n"
if atxt3 != "": if atxt3 != "":
ausgabetext += "_Symbol:Ordnungszahl_ \n" + atxt3 ausgabetext += "|:blue[Symbol]|:blue[Ordnungszahl]|\n|-|-|\n" + atxt3
return ausgabetext return ausgabetext
def naknak_to_text(eingabetext): def naknak_to_text(eingabetext):
@@ -1220,7 +1220,7 @@ def naknak_to_text(eingabetext):
utxt = utxt + nakwb[nak] utxt = utxt + nakwb[nak]
z = 1 z = 1
atxt = urllib_parse_unquote(utxt) atxt = urllib_parse_unquote(utxt)
return "_dekodiertes Geschnatter:_ \n" + atxt return f":blue[dekodiertes Geschnatter:] \n{atxt}"
def navajo_to_text(eingabetext): def navajo_to_text(eingabetext):
nabc = {"WOL-LA-CHEE": "A", "BE-LA-SANA": "A", "TSE-NILL": "A", "NA-HASH-CHID": "B", "SHUSH": "B", "TOISH-JEH": "B", nabc = {"WOL-LA-CHEE": "A", "BE-LA-SANA": "A", "TSE-NILL": "A", "NA-HASH-CHID": "B", "SHUSH": "B", "TOISH-JEH": "B",
@@ -1245,7 +1245,7 @@ def navajo_to_text(eingabetext):
w = wort.upper() w = wort.upper()
if w in nabc: if w in nabc:
atxt = atxt + nabc[w] atxt = atxt + nabc[w]
return "_dekodierter Text:_ \n" + atxt return ":blue[dekodierter Text:] \n" + atxt
def pi_suche(eingabetext): def pi_suche(eingabetext):
eingabetext = eingabetext.rstrip() eingabetext = eingabetext.rstrip()
@@ -1255,7 +1255,7 @@ def pi_suche(eingabetext):
try: try:
piread = open("./data/pi.txt", "r") piread = open("./data/pi.txt", "r")
except FileNotFoundError: except FileNotFoundError:
return "Sorry es scheint die Datei pi.txt zu fehlen, welche von dieser Funktion benötigt wird." return ":red[Sorry es scheint die Datei pi.txt zu fehlen, welche von dieser Funktion benötigt wird.]"
else: else:
pistr = "" pistr = ""
for zeile in piread: for zeile in piread:
@@ -1265,21 +1265,22 @@ def pi_suche(eingabetext):
try: try:
zahlx = int(eingabetext) zahlx = int(eingabetext)
except ValueError: except ValueError:
return "Sorry aber ohne gültige Zahleneingabe funktioniert das nicht!" return ":red[Sorry aber ohne gültige Zahleneingabe funktioniert das nicht!]"
else: else:
ausgabetext = "_PI (Kreiszahl)_ \n \n" ausgabetext = ":blue[PI (Kreiszahl)] \n \n"
pos = pistr.find(eingabetext) pos = pistr.find(eingabetext)
if pilen >= zahlx > 0: if pilen >= zahlx > 0:
ausgabetext += (f"_Die {zahlx}. Nachkommstelle lautet:_ {pistr[zahlx + 1]} \n_20 Stellen ab " ausgabetext += (f"Die :orange[{zahlx}.] Nachkommstelle lautet: :orange[{pistr[zahlx + 1]}] \n"
f"{zahlx}. Nachkommstelle:_ {pistr[zahlx + 1:zahlx + 21]}... \n \n") f"20 Stellen ab :orange[{zahlx}.] Nachkommstelle: "
f":orange[{pistr[zahlx + 1:zahlx + 21]}...] \n \n")
else: else:
ausgabetext += f"_Die verwendete pi.txt kennt leider nur {pilen:,} Nachkommstellen._ \n \n" ausgabetext += f"Die verwendete pi.txt kennt leider nur :orange[{pilen:,}] Nachkommstellen. \n \n"
if pos == -1: if pos == -1:
ausgabetext += f"_Zahlenreihe in {pilen:,} Nachkommastellen nicht zu finden._" ausgabetext += f"Zahlenreihe in :orange[{pilen:,}] Nachkommastellen nicht zu finden."
else: else:
ausgabetext += (f'erstes Vorkommen von Zahlenfolge "{eingabetext.rstrip()}" ab {pos - 1}. ' ausgabetext += (f'erstes Vorkommen von Zahlenfolge :orange[{eingabetext.rstrip()}] ab '
f'Nachkommastelle \n20 Stellen ab {pos - 1}. Nachkommstelle: ' f':orange[{pos - 1}.] Nachkommastelle \n20 Stellen ab :orange[{pos - 1}.] '
f'{pistr[pos:pos + 20]}...') f'Nachkommstelle: :orange[{pistr[pos:pos + 20]}...]')
return ausgabetext return ausgabetext
def euler_suche(eingabetext): def euler_suche(eingabetext):
@@ -1290,7 +1291,7 @@ def euler_suche(eingabetext):
try: try:
eread = open("./data/e.txt", "r") eread = open("./data/e.txt", "r")
except FileNotFoundError: except FileNotFoundError:
return "Sorry es scheint die Datei e.txt zu fehlen, welche von dieser Funktion benötigt wird." return ":red[Sorry es scheint die Datei e.txt zu fehlen, welche von dieser Funktion benötigt wird.]"
else: else:
estr = "" estr = ""
for zeile in eread: for zeile in eread:
@@ -1300,21 +1301,22 @@ def euler_suche(eingabetext):
try: try:
zahlx = int(eingabetext) zahlx = int(eingabetext)
except ValueError: except ValueError:
return "Sorry aber ohne gültige Zahleneingabe funktioniert das nicht!" return ":red[Sorry aber ohne gültige Zahleneingabe funktioniert das nicht!]"
else: else:
ausgabetext = "_e (Eulersche Zahl)_ \n \n" ausgabetext = ":blue[e (Eulersche Zahl)] \n \n"
pos = estr.find(eingabetext) pos = estr.find(eingabetext)
if elen >= zahlx > 0: if elen >= zahlx > 0:
ausgabetext += (f"_Die {zahlx}. Nachkommstelle lautet:_ {estr[zahlx + 1]} \n_20 Stellen ab " ausgabetext += (f"Die :orange[{zahlx}.] Nachkommstelle lautet: :orange[{estr[zahlx + 1]}] \n"
f"{zahlx}. Nachkommstelle:_ {estr[zahlx + 1:zahlx + 21]}... \n \n") f"20 Stellen ab :orange[{zahlx}.] Nachkommstelle: "
f":orange[{estr[zahlx + 1:zahlx + 21]}...] \n \n")
else: else:
ausgabetext += f"_Die verwendete pi.txt kennt leider nur {elen:,} Nachkommstellen._ \n \n" ausgabetext += f"Die verwendete e.txt kennt leider nur :orange[{elen:,}] Nachkommstellen. \n \n"
if pos == -1: if pos == -1:
ausgabetext += f"_Zahlenreihe in {elen:,} Nachkommastellen nicht zu finden._" ausgabetext += f"Zahlenreihe in :orange[{elen:,}] Nachkommastellen nicht zu finden."
else: else:
ausgabetext += (f'erstes Vorkommen von Zahlenfolge "{eingabetext.rstrip()}" ab {pos - 1}. ' ausgabetext += (f'erstes Vorkommen von Zahlenfolge :orange[{eingabetext.rstrip()}] ab '
f'Nachkommastelle \n20 Stellen ab {pos - 1}. Nachkommstelle: ' f':orange[{pos - 1}.] Nachkommastelle \n20 Stellen ab :orange[{pos - 1}.] '
f'{estr[pos:pos + 20]}...') f'Nachkommstelle: :orange[{estr[pos:pos + 20]}...]')
return ausgabetext return ausgabetext
def goldener_schnitt_suche(eingabetext): def goldener_schnitt_suche(eingabetext):
@@ -1325,7 +1327,7 @@ def goldener_schnitt_suche(eingabetext):
try: try:
phiread = open("./data/phi.txt", "r") phiread = open("./data/phi.txt", "r")
except ValueError: except ValueError:
return "Sorry es scheint die Datei phi.txt zu fehlen, welche von dieser Funktion benötigt wird." return ":red[Sorry es scheint die Datei phi.txt zu fehlen, welche von dieser Funktion benötigt wird.]"
else: else:
phistr = "" phistr = ""
for zeile in phiread: for zeile in phiread:
@@ -1335,21 +1337,23 @@ def goldener_schnitt_suche(eingabetext):
try: try:
zahlx = int(eingabetext) zahlx = int(eingabetext)
except ValueError: except ValueError:
return "Sorry aber ohne gültige Zahleneingabe funktioniert das nicht!" return ":red[Sorry aber ohne gültige Zahleneingabe funktioniert das nicht!]"
else: else:
ausgabetext = "_phi (Goldener Schnitt)_ \n \n" ausgabetext = ":blue[phi (Goldener Schnitt)] \n \n"
pos = phistr.find(eingabetext) pos = phistr.find(eingabetext)
if philen >= zahlx > 0: if philen >= zahlx > 0:
ausgabetext += (f"_Die {zahlx}. Nachkommstelle lautet:_ {phistr[zahlx + 1]} \n_20 Stellen ab " ausgabetext += (f"Die :orange[{zahlx}.] Nachkommstelle lautet: :orange[{phistr[zahlx + 1]}] \n"
f"{zahlx}. Nachkommstelle:_ {phistr[zahlx + 1:zahlx + 21]}... \n \n") f"20 Stellen ab :orange[{zahlx}.] Nachkommstelle: "
f":orange[{phistr[zahlx + 1:zahlx + 21]}...] \n \n")
else: else:
ausgabetext += f"_Die verwendete pi.txt kennt leider nur {philen:,} Nachkommstellen._ \n \n" ausgabetext += (f"Die verwendete pi.txt kennt leider nur :orange[{philen:,}] "
f"Nachkommstellen. \n \n")
if pos == -1: if pos == -1:
ausgabetext += f"_Zahlenreihe in {philen:,} Nachkommastellen nicht zu finden._" ausgabetext += f"Zahlenreihe in :orange[{philen:,}] Nachkommastellen nicht zu finden."
else: else:
ausgabetext += (f'erstes Vorkommen von Zahlenfolge "{eingabetext.rstrip()}" ab {pos - 1}. ' ausgabetext += (f'erstes Vorkommen von Zahlenfolge :orange[{eingabetext.rstrip()}] ab '
f'Nachkommastelle \n20 Stellen ab {pos - 1}. Nachkommstelle: ' f':orange[{pos - 1}.] Nachkommastelle \n20 Stellen ab :orange[{pos - 1}.] '
f'{phistr[pos:pos + 20]}...') f'Nachkommstelle: :orange[{phistr[pos:pos + 20]}...]')
return ausgabetext return ausgabetext
def anagramm_suche_de(eingabetext): def anagramm_suche_de(eingabetext):
@@ -1361,10 +1365,10 @@ def anagramm_suche_de(eingabetext):
wbfile = open("./data/german.dic", "r", wbfile = open("./data/german.dic", "r",
encoding="iso-8859-15") # german.dic von https://sourceforge.net/projects/germandict/ encoding="iso-8859-15") # german.dic von https://sourceforge.net/projects/germandict/
except FileNotFoundError: except FileNotFoundError:
return "Leider konnte die Wörterbuchdatei nicht geladen werden." return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]"
else: else:
eingabezaehl = helper.wortzaehl(eingabetext) eingabezaehl = helper.wortzaehl(eingabetext)
ausgabetext = "_gefundene Anagramme:_ \n" ausgabetext = ":blue[gefundene Anagramme:] \n"
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
if eingabetext.upper() == zeile.upper(): if eingabetext.upper() == zeile.upper():
@@ -1384,10 +1388,10 @@ def anagramm_suche_en(eingabetext):
try: try:
wbfile = open("./data/en_US-large.txt", "r", encoding="UTF-8") wbfile = open("./data/en_US-large.txt", "r", encoding="UTF-8")
except FileNotFoundError: except FileNotFoundError:
return "Leider konnte die Wörterbuchdatei nicht geladen werden." return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]"
else: else:
eingabezaehl = helper.wortzaehl(eingabetext) eingabezaehl = helper.wortzaehl(eingabetext)
ausgabetext = "_gefundene Anagramme:_ \n" ausgabetext = ":blue[gefundene Anagramme:] \n"
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
if eingabetext.upper() == zeile.upper(): if eingabetext.upper() == zeile.upper():
@@ -1407,9 +1411,9 @@ def wortsuche_de(eingabetext):
try: try:
wbfile = open("./data/german.dic", "r", encoding="iso-8859-15") wbfile = open("./data/german.dic", "r", encoding="iso-8859-15")
except FileNotFoundError: except FileNotFoundError:
return "Leider konnte die Wörterbuchdatei nicht geladen werden." return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]"
else: else:
ausgabetext = "_im Wörterbuch gefundene passende Wörter:_ \n" ausgabetext = ":blue[im Wörterbuch gefundene passende Wörter:] \n"
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
if len(eingabetext) != len(zeile): if len(eingabetext) != len(zeile):
@@ -1433,9 +1437,9 @@ def wortsuche_en(eingabetext):
try: try:
wbfile = open("./data/en_US-large.txt", "r", encoding="UTF-8") wbfile = open("./data/en_US-large.txt", "r", encoding="UTF-8")
except FileNotFoundError: except FileNotFoundError:
return "Leider konnte die Wörterbuchdatei nicht geladen werden." return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]"
else: else:
ausgabetext = "_im Wörterbuch gefundene passende Wörter:_ \n" ausgabetext = ":blue[im Wörterbuch gefundene passende Wörter:] \n"
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
if len(eingabetext) != len(zeile): if len(eingabetext) != len(zeile):
@@ -1465,18 +1469,19 @@ def remorse_de(eingabetext):
testfile.close() testfile.close()
if eingabetext == "GENERATE": if eingabetext == "GENERATE":
helper.remorse_generate_morsede() helper.remorse_generate_morsede()
return "Remorse-Wörterbuch wurde erzeugt und wird ab dem nächsten Aufruf der Funktion benutzt." return (":green[Remorse-Wörterbuch wurde erzeugt und wird ab dem nächsten Aufruf der Funktion "
"benutzt.]")
else: else:
ausgabetext = ("_Da das Remorse-Wörterbuch noch nicht generiert wurde, wurde das normale_ " ausgabetext = (":green[Da das Remorse-Wörterbuch noch nicht generiert wurde, wurde das normale "
"_Wörterbuch für die Suche benutzt, das dauert zwar ca. 5x so lange, aber geht_ " "Wörterbuch für die Suche benutzt, das dauert zwar ca. 5x so lange, aber geht "
"_auch._ \n" "auch. \n"
"_Um das Remorse-Wörterbuch zu erzeugen bitte das Wort:_ __GENERATE__ _ins_ " "Um das Remorse-Wörterbuch zu erzeugen bitte das Wort:] :orange[GENERATE] "
"_Eingabefeld eingeben und die Funktion starten._ \n \n") ":green[ins Eingabefeld eingeben und die Funktion starten.] \n \n")
return ausgabetext + helper.remorse_germandic(eingabetext) return ausgabetext + helper.remorse_germandic(eingabetext)
except FileNotFoundError: except FileNotFoundError:
return "Leider konnte die Wörterbuchdatei nicht geladen werden." return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]"
else: else:
ausgabetext = "_der eingegebene Morsecode kann für folgendes stehen:_ \n" ausgabetext = ":blue[der eingegebene Morsecode kann für folgendes stehen:] \n"
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
mline = zeile.split(",") mline = zeile.split(",")
@@ -1505,9 +1510,9 @@ def remorse_en(eingabetext):
try: try:
wbfile = open("./data/en_US-large.txt", "r", encoding="UTF-8") wbfile = open("./data/en_US-large.txt", "r", encoding="UTF-8")
except FileNotFoundError: except FileNotFoundError:
return "Leider konnte die Wörterbuchdatei nicht geladen werden." return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]"
else: else:
ausgabetext = "_der eingegebene Morsecode kann für folgendes stehen:_ \n" ausgabetext = ":blue[der eingegebene Morsecode kann für folgendes stehen:] \n"
if eingabetext in ualphabet: if eingabetext in ualphabet:
ausgabetext += ualphabet[eingabetext] + " \n" ausgabetext += ualphabet[eingabetext] + " \n"
for zeile in wbfile: for zeile in wbfile:
@@ -1536,17 +1541,17 @@ def t9_de(eingabetext):
testfile.close() testfile.close()
if eingabetext == "GENERATE": if eingabetext == "GENERATE":
helper.t9_generate_t9de() helper.t9_generate_t9de()
return "t9-Wörterbuch wurde erzeugt und wird ab dem nächsten Aufruf der Funktion benutzt." return ":green[t9-Wörterbuch wurde erzeugt und wird ab dem nächsten Aufruf der Funktion benutzt.]"
else: else:
ausgabetext = ("_Da das T9-Wörterbuch nicht vorhanden ist, wurde das normale Wörterbuch für die_ " ausgabetext = (":green[Da das T9-Wörterbuch nicht vorhanden ist, wurde das normale Wörterbuch für "
"_Suche benutzt. Das dauert zwar ca. 7x so lange, aber geht auch._ \n" "die Suche benutzt. Das dauert zwar ca. 7x so lange, aber geht auch. \n"
"_Um das spezielle T9-Wörterbuch zu erzeugen bitte das Wort:_ __GENERATE__ _ins_ " "Um das spezielle T9-Wörterbuch zu erzeugen bitte das Wort:] :orange[GENERATE] "
"_Eingabefeld eingeben und die Funktion starten._ \n \n") ":green[ins Eingabefeld eingeben und die Funktion starten.] \n \n")
return ausgabetext + helper.t9_germandic(eingabetext) return ausgabetext + helper.t9_germandic(eingabetext)
except FileNotFoundError: except FileNotFoundError:
return "Leider konnte die Wörterbuchdatei nicht geladen werden." return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]"
else: else:
ausgabetext = "_der eingegebene T9-Code kann für folgendes stehen:_ \n" ausgabetext = ":blue[der eingegebene T9-Code kann für folgendes stehen:] \n"
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
mline = zeile.split(",") mline = zeile.split(",")
@@ -1571,9 +1576,9 @@ def t9_en(eingabetext):
try: try:
wbfile = open("./data/en_US-large.txt", "r", encoding="UTF-8") wbfile = open("./data/en_US-large.txt", "r", encoding="UTF-8")
except FileNotFoundError: except FileNotFoundError:
return "Leider konnte die Wörterbuchdatei nicht geladen werden." return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]"
else: else:
ausgabetext = "_der eingegebene T9-Code kann für folgendes stehen:_ \n" ausgabetext = ":blue[der eingegebene T9-Code kann für folgendes stehen:] \n"
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
mzeile = "" mzeile = ""
@@ -1601,7 +1606,7 @@ def vigenere(eingabetext, pw):
else: else:
for b in pw: for b in pw:
if b.upper() not in bw: if b.upper() not in bw:
return "Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!" return ":red[Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!]"
pwl = len(pw) pwl = len(pw)
encoded_text = "" encoded_text = ""
encoded_text_s = "" # wenn Leer und Sonderzeichen Schlüsselbuchstaben verbrauchen encoded_text_s = "" # wenn Leer und Sonderzeichen Schlüsselbuchstaben verbrauchen