ein bisschen ausgabe-kosmetik

This commit is contained in:
2025-07-24 23:54:18 +02:00
parent 97a096446c
commit 0afcd25bf5
2 changed files with 34 additions and 38 deletions

View File

@@ -39,7 +39,6 @@ def primzahlliste(grenze):
# ***alle permutationen generieren*** # ***alle permutationen generieren***
@st.cache_resource
def all_perms(liste): def all_perms(liste):
if len(liste) <= 1: if len(liste) <= 1:
yield liste yield liste

View File

@@ -169,7 +169,7 @@ def buchstabenwert_zu_text(eingabetext):
ignor = ignor + str(z) + " " ignor = ignor + str(z) + " "
if ignor != "": if ignor != "":
ausgabe_text += "_Achtung folgendes wurde ignoriert:_ \n" ausgabe_text += "_Achtung folgendes wurde ignoriert:_ \n"
ausgabe_text += ignor + " \n" ausgabe_text += ignor + " \n \n"
ausgabe_text += "_umgewandelte Zeichen:_ \n" ausgabe_text += "_umgewandelte Zeichen:_ \n"
ausgabe_text += atxt ausgabe_text += atxt
return ausgabe_text return ausgabe_text
@@ -252,9 +252,9 @@ def quersummen(eingabetext):
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 += "_Achtung nicht erkannte Zeichen:_ \n"
ausgabetext += ignor + " \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_Quersummen:_ \n" ausgabetext += "_Quersummen:_ \n"
ausgabetext += qtxt[:-1] + " \n" ausgabetext += qtxt[:-1] + " \n \n"
ausgabetext += "_iterierte Quersummen_ \n" ausgabetext += "_iterierte Quersummen_ \n"
ausgabetext += iqtxt[:-1] ausgabetext += iqtxt[:-1]
return ausgabetext return ausgabetext
@@ -286,14 +286,14 @@ 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 = "__mit 4__ \n"
ausgabetext += "_insgesamt gefundene Einschlüsse:_ " ausgabetext += "_insgesamt gefundene Einschlüsse:_ "
ausgabetext += f"{sum(wortsummenliste_mit)} \n" ausgabetext += f"{sum(wortsummenliste_mit)} \n"
ausgabetext += "_Einschlüsse pro Wort:_ " ausgabetext += "_Einschlüsse pro Wort:_ "
for z in wortsummenliste_mit: for z in wortsummenliste_mit:
ausgabetext += f"{z} " ausgabetext += f"{z} "
ausgabetext += "\n" ausgabetext += " \n \n"
ausgabetext += "#### ohne 4\n" ausgabetext += "__ohne 4__ \n"
ausgabetext += "_insgesamt gefundene Einschlüsse:_ " ausgabetext += "_insgesamt gefundene Einschlüsse:_ "
ausgabetext += f"{sum(wortsummenliste_ohne)} \n" ausgabetext += f"{sum(wortsummenliste_ohne)} \n"
ausgabetext += "_Einschlüsse pro Wort:_ " ausgabetext += "_Einschlüsse pro Wort:_ "
@@ -445,7 +445,7 @@ def rot47(eingabetext):
x.append(chr(33 + ((j + 14) % 94))) x.append(chr(33 + ((j + 14) % 94)))
else: else:
x.append(i) x.append(i)
return ''.join(x) return f"```\n{''.join(x)}\n```"
def ascii_to_dez(eingabetext): def ascii_to_dez(eingabetext):
eingabetext = eingabetext.rstrip() eingabetext = eingabetext.rstrip()
@@ -495,7 +495,7 @@ def dez_to_ascii(eingabetext):
atxt = atxt + chr(az) atxt = atxt + chr(az)
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n"
ausgabetext += ignor + " \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += "_umgewandelte Zeichen:_ \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -549,7 +549,7 @@ def hex_to_ascii(eingabetext):
atxt = atxt + chr(az) atxt = atxt + chr(az)
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n"
ausgabetext += ignor + " \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += "_umgewandelte Zeichen:_ \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -602,7 +602,7 @@ def octal_to_ascii(eingabetext):
atxt = atxt + chr(az) atxt = atxt + chr(az)
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n"
ausgabetext += ignor + " \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += "_umgewandelte Zeichen:_ \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -671,7 +671,7 @@ def bin_to_ascii(eingabetext):
atxt = atxt + chr(az) atxt = atxt + chr(az)
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n"
ausgabetext += ignor + " \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zeichen:_ \n" ausgabetext += "_umgewandelte Zeichen:_ \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -710,7 +710,7 @@ def zahlwortsuche_de(eingabetext):
return "Leider keine Zahlwörter gefunden!" return "Leider keine Zahlwörter gefunden!"
else: else:
ausgabetext = "_Gefundene Zahlwörter:_ \n" ausgabetext = "_Gefundene Zahlwörter:_ \n"
ausgabetext += atxt + " \n" ausgabetext += atxt + " \n \n"
ausgabetext += "_Eingangstext:_ \n" ausgabetext += "_Eingangstext:_ \n"
ausgabetext += ntxt ausgabetext += ntxt
return ausgabetext return ausgabetext
@@ -750,7 +750,7 @@ def zahlwortsuche_en(eingabetext):
return "Leider keine Zahlwörter gefunden!" return "Leider keine Zahlwörter gefunden!"
else: else:
ausgabetext = "_Gefundene Zahlwörter:_ \n" ausgabetext = "_Gefundene Zahlwörter:_ \n"
ausgabetext += atxt + " \n" ausgabetext += atxt + " \n \n"
ausgabetext += "_Eingangstext:_ \n" ausgabetext += "_Eingangstext:_ \n"
ausgabetext += ntxt ausgabetext += ntxt
return ausgabetext 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 " "Lösungen ausgegeben werden. (Falls zum kodieren die Zahlen 0,1 oder 2 verwendet wurden, werden "
"sie durch Buchstaben a,b,c.. ersetzt)") "sie durch Buchstaben a,b,c.. ersetzt)")
else: else:
wtxt = "" wtxt = eingabetext.replace(chr(9),"").replace(chr(32),"").replace(chr(10),"").lower()
ausgabetext = "" # erstmal leerzeichen, tab, linefeed raus und alles klein
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()
anzahl = {} # restliche zeichen zählen und in ein wörterbuch anzahl = {} # restliche zeichen zählen und in ein wörterbuch
for c in wtxt: for c in wtxt:
if c in anzahl: if c in anzahl:
@@ -840,6 +836,7 @@ def kenny_raten(eingabetext):
cwtxt = cwtxt.replace(abc3[i], j) cwtxt = cwtxt.replace(abc3[i], j)
abc3[i] = j abc3[i] = j
break break
ausgabetext = ""
for p in helper.all_perms(abc3): for p in helper.all_perms(abc3):
txt0 = cwtxt.replace(p[0], "0") txt0 = cwtxt.replace(p[0], "0")
txt1 = txt0.replace(p[1], "1") txt1 = txt0.replace(p[1], "1")
@@ -850,7 +847,7 @@ def kenny_raten(eingabetext):
if tri in wbk: if tri in wbk:
atxt = atxt + wbk[tri] atxt = atxt + wbk[tri]
ausgabetext += f"_{p}_ \n" ausgabetext += f"_{p}_ \n"
ausgabetext += f"{atxt} \n" ausgabetext += f"{atxt} \n \n"
return ausgabetext return ausgabetext
def primzahlalphabet_dekodieren(eingabetext): def primzahlalphabet_dekodieren(eingabetext):
@@ -904,7 +901,7 @@ def primzahlalphabet_dekodieren(eingabetext):
ignor = ignor + str(z) + " " ignor = ignor + str(z) + " "
if ignor != "": if ignor != "":
ausgabetext += "_ignoriert wurde:_ \n" ausgabetext += "_ignoriert wurde:_ \n"
ausgabetext += ignor + " \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_umgewandelte Zahlen:_ \n" ausgabetext += "_umgewandelte Zahlen:_ \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -1002,7 +999,7 @@ def dez_to_hex_oct_bin(eingabetext):
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!"
else: 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: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -1048,7 +1045,7 @@ def hex_to_dez_oct_bin(eingabetext):
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!"
else: 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: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -1094,7 +1091,7 @@ def oct_to_hex_dez_bin(eingabetext):
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!"
else: 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: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -1140,7 +1137,7 @@ def bin_to_hex_dez_oct(eingabetext):
except ValueError: except ValueError:
return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" return "Keine Zahl oder gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!"
else: 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: else:
ausgabetext = "" ausgabetext = ""
txt = eingabetext.split(se) txt = eingabetext.split(se)
@@ -1188,7 +1185,7 @@ def abc_to_tomtom(eingabetext):
atxt = atxt + alphabet[b.lower()] atxt = atxt + alphabet[b.lower()]
if ignor != "": if ignor != "":
ausgabetext += "_ignorierte Zeichen:_ \n" ausgabetext += "_ignorierte Zeichen:_ \n"
ausgabetext += ignor + " \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_kodierter Text:_ \n" ausgabetext += "_kodierter Text:_ \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -1245,7 +1242,7 @@ def text_to_slashpipe(eingabetext):
atxt = atxt + alphabet[b.lower()] atxt = atxt + alphabet[b.lower()]
if ignor != "": if ignor != "":
ausgabetext += "_ignorierte Zeichen:_ \n" ausgabetext += "_ignorierte Zeichen:_ \n"
ausgabetext += ignor + " \n" ausgabetext += ignor + " \n \n"
ausgabetext += "_kodierter Text:_ \n" ausgabetext += "_kodierter Text:_ \n"
ausgabetext += atxt ausgabetext += atxt
return ausgabetext return ausgabetext
@@ -1340,13 +1337,13 @@ def periodensystem(eingabetext):
else: else:
ignor = ignor + z + " " ignor = ignor + z + " "
if ignor != "": if ignor != "":
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" + ignor + " \n" ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n" + ignor + " \n \n"
if atxt != "": if atxt != "":
ausgabetext += "_Symbole:_ \n" + atxt + " \n" ausgabetext += "_Symbole:_ \n" + atxt + " \n \n"
if atxt2 != "": if atxt2 != "":
ausgabetext += "_Nur Anfangsbuchstaben:_ \n" + atxt2 + " \n" ausgabetext += "_Nur Anfangsbuchstaben:_ \n" + atxt2 + " \n \n"
if atxt3 != "": if atxt3 != "":
ausgabetext += "_Symbol:Ordnungszahl_ \n" + atxt3 + " \n" ausgabetext += "_Symbol:Ordnungszahl_ \n" + atxt3
return ausgabetext return ausgabetext
def naknak_to_text(eingabetext): def naknak_to_text(eingabetext):
@@ -1436,13 +1433,13 @@ def pi_suche(eingabetext):
except ValueError: except ValueError:
return "Sorry aber ohne gültige Zahleneingabe funktioniert das nicht!" return "Sorry aber ohne gültige Zahleneingabe funktioniert das nicht!"
else: else:
ausgabetext = "_PI (Kreiszahl)_ \n" ausgabetext = "_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 {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: 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: if pos == -1:
ausgabetext += f"_Zahlenreihe in {pilen:,} Nachkommastellen nicht zu finden._" ausgabetext += f"_Zahlenreihe in {pilen:,} Nachkommastellen nicht zu finden._"
else: else:
@@ -1815,9 +1812,9 @@ def vigenere(eingabetext, pw):
else: else:
decoded_text += ubw[ba].lower() decoded_text += ubw[ba].lower()
decoded_text_s += ubw[bas].lower() decoded_text_s += ubw[bas].lower()
ausgabetext = f"_Dekodiert - normal:_ \n{decoded_text} \n_Kodiert - normal:_ \n{encoded_text} \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" ausgabetext += f"_Dekodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{decoded_text_s} \n \n"
ausgabetext += f"_Kodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{encoded_text_s} \n" ausgabetext += f"_Kodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{encoded_text_s}"
return ausgabetext return ausgabetext
''' '''
def wolseley(): def wolseley():