From 872ec5fa7845c4df5e09675973a7e704ab682933 Mon Sep 17 00:00:00 2001 From: tebarius Date: Tue, 22 Jul 2025 15:03:29 +0200 Subject: [PATCH] =?UTF-8?q?einschl=C3=BCsse=20z=C3=A4hlen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/app.py | 6 +-- app/tools.py | 130 +++++++++++++++++---------------------------------- 2 files changed, 45 insertions(+), 91 deletions(-) diff --git a/app/app.py b/app/app.py index 505781a..0f88fb1 100644 --- a/app/app.py +++ b/app/app.py @@ -44,8 +44,8 @@ def auswahl_verarbeiten(): elif auswahl == "Quersumme(n)": st.session_state.output_text = tools.quersummen(text) st.session_state.map_data = None - elif auswahl == "REPLACE": - st.session_state.output_text = tools.REPLACE(text) + elif auswahl == "Einschlüsse zählen": + st.session_state.output_text = tools.einschluesse(text) st.session_state.map_data = None elif auswahl == "REPLACE": st.session_state.output_text = tools.REPLACE(text) @@ -101,7 +101,7 @@ option = st.sidebar.radio("hidden_label", "Zeichenzählen", "Text rückwärts", "Quersumme(n)", - "", + "Einschlüsse zählen", "", "", "", diff --git a/app/tools.py b/app/tools.py index 6aae406..ff4012e 100644 --- a/app/tools.py +++ b/app/tools.py @@ -256,95 +256,49 @@ def quersummen(eingabetext): ausgabetext += "_iterierte Quersummen_ \n" ausgabetext += iqtxt[:-1] return ausgabetext + +def einschluesse(eingabetext): + eingabetext = eingabetext.rstrip() + if eingabetext == "": + return ("### Einschlüsse zählen\n" + "Es werden die Einschlüsse in Buchstaben und Ziffern gezählt. Neben der Anzahl der Einschlüsse für" + " jeden einzelnen Buchstaben, für jedes Wort und die gesammte Eingabe ermittelt. Da es sich bei der" + " Zahl 4 je nach Schreibweise um eine Zahl mit oder ohne Einschluß handeln kann, werden beide Varianten" + "berücksichtigt. !!! Hier ist Klein- und Großschreibung wichtig, denn z.B. b=1 aber B=2 !!!") + else: + bw = "ADOPQRabdegopq690" + wortsummenliste_ohne = [] + wortsummenliste_mit = [] + wortliste = eingabetext.split() + for wort in wortliste: + wz_ohne = 0 + wz_mit = 0 + for b in wort: + if b == "4": + wz_mit += 1 + if b == "B" or b == "8": + wz_ohne += 2 + wz_mit += 2 + elif b in bw: + wz_mit += 1 + wz_ohne += 1 + wortsummenliste_ohne.append(wz_ohne) + wortsummenliste_mit.append(wz_mit) + 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 += "_insgesamt gefundene Einschlüsse:_ " + ausgabetext += f"{sum(wortsummenliste_ohne)} \n" + ausgabetext += "_Einschlüsse pro Wort:_ " + for z in wortsummenliste_ohne: + ausgabetext += f"{z} " + return ausgabetext ''' -def einschluessemit4(): - - eingabetext = Eingabe.get(1.0, END) - eingabetext = eingabetext.rstrip() - if eingabetext == "": - Ausgabe.insert(1.0, """HILFE: [Einschlüsse zählen] -Es werden die Einschlüsse in Buchstaben und -Ziffern gezählt. Neben der Anzahl der Einschlüss -für jeden einzelnen Buchstaben, für jedes Wort und -die gesammte Eingabe ermittelt. -Da es sich bei der Zahl 4 je nach Schreibweise um -eine Zahl mit oder ohne Einschluß handeln kann gibt -es zwei Versionen. -!!! Hier ist Klein- und Großschreibung wichtig, denn -z.B. b=1 aber B=2 !!!""" + "\n\n") - else: - bw1 = "ADOPQRabdegopq4690" - wortsummenliste = [] - wortliste = eingabetext.split() - az = "" - for wort in wortliste: - wz = 0 - for b in wort: - if b == "B" or b == "8": - az = az + "2" - wz = wz + 2 - elif b in bw1: - az = az + "1" - wz = wz + 1 - else: - az = az + "0" - az = az + " " - wortsummenliste.append(wz) - Ausgabe.insert(1.0, str(sum(wortsummenliste)) + "\n") - Ausgabe.insert(1.0, "insgesamt gefundene Einschlüsse:", "bu") - wtxt = "" - for z in wortsummenliste: - wtxt = wtxt + str(z) + " " - Ausgabe.insert(1.0, wtxt + "\n") - Ausgabe.insert(1.0, "Einschlüsse pro Wort:", "bu") - Ausgabe.insert(1.0, az + "\n") - Ausgabe.insert(1.0, "Einschlüsse je Zeichen:\n", "bu") - - -def einschluesseohne4(): - - eingabetext = Eingabe.get(1.0, END) - eingabetext = eingabetext.rstrip() - if eingabetext == "": - Ausgabe.insert(1.0, """HILFE: [Einschlüsse zählen] -Es werden die Einschlüsse in Buchstaben und -Ziffern gezählt. Neben der Anzahl der Einschlüss -für jeden einzelnen Buchstaben, für jedes Wort und -die gesammte Eingabe ermittelt. -Da es sich bei der Zahl 4 je nach Schreibweise um -eine Zahl mit oder ohne Einschluß handeln kann gibt -es zwei Versionen. -!!! Hier ist Klein- und Großschreibung wichtig, denn -z.B. b=1 aber B=2 !!!""" + "\n\n") - else: - bw1 = "ADOPQRabdegopq690" - wortsummenliste = [] - wortliste = eingabetext.split() - az = "" - for wort in wortliste: - wz = 0 - for b in wort: - if b == "B" or b == "8": - az = az + "2" - wz = wz + 2 - elif b in bw1: - az = az + "1" - wz = wz + 1 - else: - az = az + "0" - az = az + " " - wortsummenliste.append(wz) - Ausgabe.insert(1.0, str(sum(wortsummenliste)) + "\n") - Ausgabe.insert(1.0, "insgesamt gefundene Einschlüsse:", "bu") - wtxt = "" - for z in wortsummenliste: - wtxt = wtxt + str(z) + " " - Ausgabe.insert(1.0, wtxt + "\n") - Ausgabe.insert(1.0, "Einschlüsse pro Wort:", "bu") - Ausgabe.insert(1.0, az + "\n") - Ausgabe.insert(1.0, "Einschlüsse je Zeichen:\n", "bu") - - def morsetoabc(): alphabet = {".-": "A", "-...": "B", "-.-.": "C", "-..": "D", ".": "E", "..-.": "F", "--.": "G", "....": "H", "..": "I", ".---": "J", "-.-": "K", ".-..": "L",