diff --git a/app/helper.py b/app/helper.py index db36917..a685c04 100644 --- a/app/helper.py +++ b/app/helper.py @@ -39,7 +39,6 @@ def primzahlliste(grenze): # ***alle permutationen generieren*** -@st.cache_resource def all_perms(liste): if len(liste) <= 1: yield liste diff --git a/app/tools.py b/app/tools.py index 35d78bc..564ea79 100644 --- a/app/tools.py +++ b/app/tools.py @@ -169,7 +169,7 @@ def buchstabenwert_zu_text(eingabetext): ignor = ignor + str(z) + " " if ignor != "": ausgabe_text += "_Achtung folgendes wurde ignoriert:_ \n" - ausgabe_text += ignor + " \n" + ausgabe_text += ignor + " \n \n" ausgabe_text += "_umgewandelte Zeichen:_ \n" ausgabe_text += atxt return ausgabe_text @@ -252,9 +252,9 @@ def quersummen(eingabetext): iqtxt = iqtxt + str(helper.iq_sum(az)) + "/" if ignor != "": ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" - ausgabetext += ignor + " \n" + ausgabetext += ignor + " \n \n" ausgabetext += "_Quersummen:_ \n" - ausgabetext += qtxt[:-1] + " \n" + ausgabetext += qtxt[:-1] + " \n \n" ausgabetext += "_iterierte Quersummen_ \n" ausgabetext += iqtxt[:-1] return ausgabetext @@ -286,14 +286,14 @@ def einschluss_count(eingabetext): wz_ohne += 1 wortsummenliste_ohne.append(wz_ohne) wortsummenliste_mit.append(wz_mit) - ausgabetext = "#### mit 4\n" + ausgabetext = "__mit 4__ \n" ausgabetext += "_insgesamt gefundene Einschlüsse:_ " ausgabetext += f"{sum(wortsummenliste_mit)} \n" ausgabetext += "_Einschlüsse pro Wort:_ " for z in wortsummenliste_mit: ausgabetext += f"{z} " - ausgabetext += "\n" - ausgabetext += "#### ohne 4\n" + ausgabetext += " \n \n" + ausgabetext += "__ohne 4__ \n" ausgabetext += "_insgesamt gefundene Einschlüsse:_ " ausgabetext += f"{sum(wortsummenliste_ohne)} \n" ausgabetext += "_Einschlüsse pro Wort:_ " @@ -445,7 +445,7 @@ def rot47(eingabetext): x.append(chr(33 + ((j + 14) % 94))) else: x.append(i) - return ''.join(x) + return f"```\n{''.join(x)}\n```" def ascii_to_dez(eingabetext): eingabetext = eingabetext.rstrip() @@ -495,7 +495,7 @@ def dez_to_ascii(eingabetext): atxt = atxt + chr(az) if ignor != "": ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" - ausgabetext += ignor + " \n" + ausgabetext += ignor + " \n \n" ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += atxt return ausgabetext @@ -549,7 +549,7 @@ def hex_to_ascii(eingabetext): atxt = atxt + chr(az) if ignor != "": ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" - ausgabetext += ignor + " \n" + ausgabetext += ignor + " \n \n" ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += atxt return ausgabetext @@ -602,7 +602,7 @@ def octal_to_ascii(eingabetext): atxt = atxt + chr(az) if ignor != "": ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" - ausgabetext += ignor + " \n" + ausgabetext += ignor + " \n \n" ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += atxt return ausgabetext @@ -671,7 +671,7 @@ def bin_to_ascii(eingabetext): atxt = atxt + chr(az) if ignor != "": ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" - ausgabetext += ignor + " \n" + ausgabetext += ignor + " \n \n" ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += atxt return ausgabetext @@ -710,7 +710,7 @@ def zahlwortsuche_de(eingabetext): return "Leider keine Zahlwörter gefunden!" else: ausgabetext = "_Gefundene Zahlwörter:_ \n" - ausgabetext += atxt + " \n" + ausgabetext += atxt + " \n \n" ausgabetext += "_Eingangstext:_ \n" ausgabetext += ntxt return ausgabetext @@ -750,7 +750,7 @@ def zahlwortsuche_en(eingabetext): return "Leider keine Zahlwörter gefunden!" else: ausgabetext = "_Gefundene Zahlwörter:_ \n" - ausgabetext += atxt + " \n" + ausgabetext += atxt + " \n \n" ausgabetext += "_Eingangstext:_ \n" ausgabetext += ntxt return ausgabetext @@ -807,12 +807,8 @@ def kenny_raten(eingabetext): "Lösungen ausgegeben werden. (Falls zum kodieren die Zahlen 0,1 oder 2 verwendet wurden, werden " "sie durch Buchstaben a,b,c.. ersetzt)") else: - wtxt = "" - ausgabetext = "" - for b in eingabetext: - if b == chr(9) or b == chr(32) or b == chr(10): - continue # erstmal leerzeichen, tab, linefeed raus - wtxt = wtxt + b.lower() + wtxt = eingabetext.replace(chr(9),"").replace(chr(32),"").replace(chr(10),"").lower() + # erstmal leerzeichen, tab, linefeed raus und alles klein anzahl = {} # restliche zeichen zählen und in ein wörterbuch for c in wtxt: if c in anzahl: @@ -840,6 +836,7 @@ def kenny_raten(eingabetext): cwtxt = cwtxt.replace(abc3[i], j) abc3[i] = j break + ausgabetext = "" for p in helper.all_perms(abc3): txt0 = cwtxt.replace(p[0], "0") txt1 = txt0.replace(p[1], "1") @@ -850,7 +847,7 @@ def kenny_raten(eingabetext): if tri in wbk: atxt = atxt + wbk[tri] ausgabetext += f"_{p}_ \n" - ausgabetext += f"{atxt} \n" + ausgabetext += f"{atxt} \n \n" return ausgabetext def primzahlalphabet_dekodieren(eingabetext): @@ -904,7 +901,7 @@ def primzahlalphabet_dekodieren(eingabetext): ignor = ignor + str(z) + " " if ignor != "": ausgabetext += "_ignoriert wurde:_ \n" - ausgabetext += ignor + " \n" + ausgabetext += ignor + " \n \n" ausgabetext += "_umgewandelte Zahlen:_ \n" ausgabetext += atxt return ausgabetext @@ -1002,7 +999,7 @@ def dez_to_hex_oct_bin(eingabetext): except ValueError: return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" else: - return "Dez: {0:} HEX:{0:X} OCT:{0:o} BIN:{0:b}".format(ausz) + return "Dez: {0:} \nHEX: {0:X} \nOCT: {0:o} \nBIN: {0:b}".format(ausz) else: ausgabetext = "" txt = eingabetext.split(se) @@ -1048,7 +1045,7 @@ def hex_to_dez_oct_bin(eingabetext): except ValueError: return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" else: - return "HEX:{0:X} Dez: {0:} OCT:{0:o} BIN:{0:b}".format(ausz) + return "HEX: {0:X} \nDez: {0:} \nOCT: {0:o} \nBIN: {0:b}".format(ausz) else: ausgabetext = "" txt = eingabetext.split(se) @@ -1094,7 +1091,7 @@ def oct_to_hex_dez_bin(eingabetext): except ValueError: return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" else: - return "OCT:{0:o} HEX:{0:X} Dez: {0:} BIN:{0:b}".format(ausz) + return "OCT: {0:o} \nHEX: {0:X} \nDez: {0:} \nBIN: {0:b}".format(ausz) else: ausgabetext = "" txt = eingabetext.split(se) @@ -1140,7 +1137,7 @@ def bin_to_hex_dez_oct(eingabetext): except ValueError: return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" else: - return "BIN:{0:b} HEX:{0:X} Dez: {0:} OCT:{0:o}".format(ausz) + return "BIN: {0:b} \nHEX: {0:X} \nDez: {0:} \nOCT: {0:o}".format(ausz) else: ausgabetext = "" txt = eingabetext.split(se) @@ -1188,7 +1185,7 @@ def abc_to_tomtom(eingabetext): atxt = atxt + alphabet[b.lower()] if ignor != "": ausgabetext += "_ignorierte Zeichen:_ \n" - ausgabetext += ignor + " \n" + ausgabetext += ignor + " \n \n" ausgabetext += "_kodierter Text:_ \n" ausgabetext += atxt return ausgabetext @@ -1245,7 +1242,7 @@ def text_to_slashpipe(eingabetext): atxt = atxt + alphabet[b.lower()] if ignor != "": ausgabetext += "_ignorierte Zeichen:_ \n" - ausgabetext += ignor + " \n" + ausgabetext += ignor + " \n \n" ausgabetext += "_kodierter Text:_ \n" ausgabetext += atxt return ausgabetext @@ -1340,13 +1337,13 @@ def periodensystem(eingabetext): else: ignor = ignor + z + " " if ignor != "": - ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" + ignor + " \n" + ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" + ignor + " \n \n" if atxt != "": - ausgabetext += "_Symbole:_ \n" + atxt + " \n" + ausgabetext += "_Symbole:_ \n" + atxt + " \n \n" if atxt2 != "": - ausgabetext += "_Nur Anfangsbuchstaben:_ \n" + atxt2 + " \n" + ausgabetext += "_Nur Anfangsbuchstaben:_ \n" + atxt2 + " \n \n" if atxt3 != "": - ausgabetext += "_Symbol:Ordnungszahl_ \n" + atxt3 + " \n" + ausgabetext += "_Symbol:Ordnungszahl_ \n" + atxt3 return ausgabetext def naknak_to_text(eingabetext): @@ -1436,13 +1433,13 @@ def pi_suche(eingabetext): except ValueError: return "Sorry aber ohne gültige Zahleneingabe funktioniert das nicht!" else: - ausgabetext = "_PI (Kreiszahl)_ \n" + ausgabetext = "_PI (Kreiszahl)_ \n \n" pos = pistr.find(eingabetext) if pilen >= zahlx > 0: ausgabetext += (f"_Die {zahlx}. Nachkommstelle lautet:_ {pistr[zahlx + 1]} \n_20 Stellen ab " - f"{zahlx}. Nachkommstelle:_ {pistr[zahlx + 1:zahlx + 21]}... \n") + f"{zahlx}. Nachkommstelle:_ {pistr[zahlx + 1:zahlx + 21]}... \n \n") else: - ausgabetext += f"_Die verwendete pi.txt kennt leider nur {pilen:,} Nachkommstellen._ \n" + ausgabetext += f"_Die verwendete pi.txt kennt leider nur {pilen:,} Nachkommstellen._ \n \n" if pos == -1: ausgabetext += f"_Zahlenreihe in {pilen:,} Nachkommastellen nicht zu finden._" else: @@ -1815,9 +1812,9 @@ def vigenere(eingabetext, pw): else: decoded_text += ubw[ba].lower() decoded_text_s += ubw[bas].lower() - ausgabetext = f"_Dekodiert - normal:_ \n{decoded_text} \n_Kodiert - normal:_ \n{encoded_text} \n" - ausgabetext += f"_Dekodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{decoded_text_s} \n" - ausgabetext += f"_Kodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{encoded_text_s} \n" + ausgabetext = f"_Dekodiert - normal:_ \n{decoded_text} \n \n_Kodiert - normal:_ \n{encoded_text} \n \n" + ausgabetext += f"_Dekodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{decoded_text_s} \n \n" + ausgabetext += f"_Kodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{encoded_text_s}" return ausgabetext ''' def wolseley():