zeichen zählen + rückwärts
This commit is contained in:
30
app/app.py
30
app/app.py
@@ -1,8 +1,7 @@
|
|||||||
# app.py
|
# app.py
|
||||||
import streamlit as st
|
import streamlit as st
|
||||||
from pyarrow.interchange.from_dataframe import map_date_type
|
|
||||||
|
|
||||||
from tools import *
|
import tools
|
||||||
|
|
||||||
standard_output = ('#### Um den HILFE-Text zu einzelnen Funktionen aufzurufen bitte die Funktion mit leerem'
|
standard_output = ('#### Um den HILFE-Text zu einzelnen Funktionen aufzurufen bitte die Funktion mit leerem'
|
||||||
' Eingabefeld aufrufen.')
|
' Eingabefeld aufrufen.')
|
||||||
@@ -28,13 +27,24 @@ def auswahl_verarbeiten():
|
|||||||
st.session_state.output_text = standard_output
|
st.session_state.output_text = standard_output
|
||||||
st.session_state.map_data = None
|
st.session_state.map_data = None
|
||||||
elif auswahl == "Cesarchiffre (all)":
|
elif auswahl == "Cesarchiffre (all)":
|
||||||
st.session_state.output_text = cesar_all(text)
|
st.session_state.output_text = tools.cesar_all(text)
|
||||||
st.session_state.map_data = None
|
st.session_state.map_data = None
|
||||||
elif auswahl == "BW,BWW,... ermitteln":
|
elif auswahl == "BW,BWW,... ermitteln":
|
||||||
st.session_state.output_text = buchstabenwortwert(text)
|
st.session_state.output_text = tools.buchstabenwortwert(text)
|
||||||
st.session_state.map_data = None
|
st.session_state.map_data = None
|
||||||
|
elif auswahl == "Buchstabenwert->Text":
|
||||||
|
st.session_state.output_text = tools.buchstabenwertzutext(text)
|
||||||
|
st.session_state.map_data = None
|
||||||
|
elif auswahl == "Zeichenzählen":
|
||||||
|
st.session_state.output_text = tools.zeichenzaehlen(text)
|
||||||
|
st.session_state.map_data = None
|
||||||
|
elif auswahl == "Text rückwärts":
|
||||||
|
st.session_state.output_text = tools.zeichenkette_rueckwaerts(text)
|
||||||
|
st.session_state.map_data = None
|
||||||
|
|
||||||
|
|
||||||
elif auswahl == "Dummy mit Karte":
|
elif auswahl == "Dummy mit Karte":
|
||||||
output, mapd = funktion_mit_karte(text, additional_parameter)
|
output, mapd = tools.funktion_mit_karte(text, additional_parameter)
|
||||||
st.session_state.output_text = output
|
st.session_state.output_text = output
|
||||||
st.session_state.map_data = mapd
|
st.session_state.map_data = mapd
|
||||||
|
|
||||||
@@ -59,6 +69,16 @@ option = st.sidebar.radio("hidden_label",
|
|||||||
"Dummy mit Karte",
|
"Dummy mit Karte",
|
||||||
"Cesarchiffre (all)",
|
"Cesarchiffre (all)",
|
||||||
"BW,BWW,... ermitteln",
|
"BW,BWW,... ermitteln",
|
||||||
|
"Buchstabenwert->Text",
|
||||||
|
"Zeichenzählen",
|
||||||
|
"Text rückwärts",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
),
|
),
|
||||||
key='option',
|
key='option',
|
||||||
on_change=auswahl_verarbeiten,
|
on_change=auswahl_verarbeiten,
|
||||||
|
|||||||
89
app/tools.py
89
app/tools.py
@@ -1,4 +1,4 @@
|
|||||||
from helper import *
|
import helper
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
||||||
def funktion_mit_karte(text,param):
|
def funktion_mit_karte(text,param):
|
||||||
@@ -108,7 +108,7 @@ def buchstabenwortwert(eingabetext):
|
|||||||
ausgabe += "|_Summe aller Buchstabenwerte:_|"
|
ausgabe += "|_Summe aller Buchstabenwerte:_|"
|
||||||
ausgabe += str(wortsumme) + "|\n"
|
ausgabe += str(wortsumme) + "|\n"
|
||||||
ausgabe += "|_Quersumme der Summe aller Buchstabenwerte / iterierte Quersumme:_|"
|
ausgabe += "|_Quersumme der Summe aller Buchstabenwerte / iterierte Quersumme:_|"
|
||||||
ausgabe += str(q_sum(wortsumme)) + " / " + str(iq_sum(wortsumme)) + "|\n"
|
ausgabe += str(helper.q_sum(wortsumme)) + " / " + str(helper.iq_sum(wortsumme)) + "|\n"
|
||||||
ausgabe += "|_Buchstabenanzahl pro Wort:_|"
|
ausgabe += "|_Buchstabenanzahl pro Wort:_|"
|
||||||
ausgabe += banzwtxt[0:-1] + "|\n"
|
ausgabe += banzwtxt[0:-1] + "|\n"
|
||||||
ausgabe += "|_Gesamtanzahl aller Buchstaben:_|"
|
ausgabe += "|_Gesamtanzahl aller Buchstaben:_|"
|
||||||
@@ -119,27 +119,20 @@ def buchstabenwortwert(eingabetext):
|
|||||||
ausgabe += str(wortprodukt) + "|\n"
|
ausgabe += str(wortprodukt) + "|\n"
|
||||||
return ausgabe
|
return ausgabe
|
||||||
|
|
||||||
|
def buchstabenwertzutext(eingabetext):
|
||||||
def buchstabenwertzutext():
|
|
||||||
seperator = ("|,", "_", ".", "-", "/", ";", ",")
|
seperator = ("|,", "_", ".", "-", "/", ";", ",")
|
||||||
bw = {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i', 10: 'j', 11: 'k',
|
bw = {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i', 10: 'j', 11: 'k',
|
||||||
12: 'l', 13: 'm', 14: 'n', 15: 'o', 16: 'p', 17: 'q', 18: 'r', 19: 's', 20: 't', 21: 'u',
|
12: 'l', 13: 'm', 14: 'n', 15: 'o', 16: 'p', 17: 'q', 18: 'r', 19: 's', 20: 't', 21: 'u',
|
||||||
22: 'v', 23: 'w', 24: 'x', 25: 'y', 26: 'z', 27: 'ä', 28: 'ö', 29: 'ü', 30: 'ß'}
|
22: 'v', 23: 'w', 24: 'x', 25: 'y', 26: 'z', 27: 'ä', 28: 'ö', 29: 'ü', 30: 'ß'}
|
||||||
|
|
||||||
eingabetext = Eingabe.get(1.0, END)
|
|
||||||
eingabetext = eingabetext.rstrip()
|
eingabetext = eingabetext.rstrip()
|
||||||
if eingabetext == "":
|
if eingabetext == "":
|
||||||
Ausgabe.insert(1.0, """HILFE: [Buchstabenwerte zu Text]
|
return ("### HILFE: [Buchstabenwerte zu Text]\n"
|
||||||
Die eingegebenen Buchstabenwert werden in die
|
" Die eingegebenen Buchstabenwerte werden in die entsprechenden Buchstaben umgewandelt."
|
||||||
entsprechenden Buchstaben umgewandelt.
|
" (A=1 B=2 .... Ä=27 Ö=28 Ü=29 ß=30) Als Trennungszeichen zwischen den Zahlen sind folgende"
|
||||||
(A=1 B=2 .... Ä=27 Ö=28 Ü=29 ß=30)
|
" Zeichen erlaubt: | , _ . - / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten"
|
||||||
Als Trennungszeichen zwischen den Zahlen sind
|
" möglichst nur 1 Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen"
|
||||||
folgende Zeichen erlaubt: | , _ . - / ; , und
|
" werden sonst als nicht erkannte Zeichen behandelt).")
|
||||||
Leerzeichen. Bei Verwendung von Leerzeichen
|
|
||||||
sollten möglichst nur 1 Leerzeichen zwischen
|
|
||||||
den Zahlen verwendet werden (überzählige
|
|
||||||
Leerzeichen werden sonst als nicht erkannte
|
|
||||||
Zeichen behandelt).""" + "\n\n")
|
|
||||||
else:
|
else:
|
||||||
se = ""
|
se = ""
|
||||||
for s in seperator:
|
for s in seperator:
|
||||||
@@ -151,14 +144,14 @@ Zeichen behandelt).""" + "\n\n")
|
|||||||
try:
|
try:
|
||||||
ausz = int(eingabetext)
|
ausz = int(eingabetext)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
Ausgabe.insert(1.0, "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!\n",
|
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!\n"
|
||||||
"re")
|
|
||||||
else:
|
else:
|
||||||
if ausz not in bw:
|
if ausz not in bw:
|
||||||
Ausgabe.insert(1.0, "Die eingegebene Zahl ist kein gültiger Buchstabenwert!\n", "re")
|
return "Die eingegebene Zahl ist kein gültiger Buchstabenwert!\n"
|
||||||
else:
|
else:
|
||||||
Ausgabe.insert(1.0, bw[ausz] + "\n")
|
return bw[ausz]
|
||||||
else:
|
else:
|
||||||
|
ausgabe_text = ""
|
||||||
txt = eingabetext.split(se)
|
txt = eingabetext.split(se)
|
||||||
atxt = ""
|
atxt = ""
|
||||||
ignor = ""
|
ignor = ""
|
||||||
@@ -172,36 +165,29 @@ Zeichen behandelt).""" + "\n\n")
|
|||||||
atxt = atxt + bw[az]
|
atxt = atxt + bw[az]
|
||||||
else:
|
else:
|
||||||
ignor = ignor + str(z) + " "
|
ignor = ignor + str(z) + " "
|
||||||
Ausgabe.insert(1.0, atxt + "\n")
|
|
||||||
Ausgabe.insert(1.0, "umgewandelte Zeichen:\n", "bu")
|
|
||||||
if ignor != "":
|
if ignor != "":
|
||||||
Ausgabe.insert(1.0, ignor + "\n")
|
ausgabe_text += "_Achtung folgendes wurde ignoriert:_ \n"
|
||||||
Ausgabe.insert(1.0, "Achtung folgendes wurde ignoriert:\n", "re")
|
ausgabe_text += ignor + " \n"
|
||||||
|
ausgabe_text += "_umgewandelte Zeichen:_ \n"
|
||||||
|
ausgabe_text += atxt
|
||||||
|
return ausgabe_text
|
||||||
|
|
||||||
|
def zeichenkette_rueckwaerts(eingabetext):
|
||||||
def zeichenkette_rueckwaerts():
|
|
||||||
|
|
||||||
eingabetext = Eingabe.get(1.0, END)
|
|
||||||
eingabetext = eingabetext.rstrip()
|
eingabetext = eingabetext.rstrip()
|
||||||
if eingabetext == "":
|
if eingabetext == "":
|
||||||
Ausgabe.insert(1.0, """HILFE: [Zeichenkette rückwärts]
|
return ("### HILFE: [Zeichenkette rückwärts]\n"
|
||||||
Diese Funktion gibt die eingegebene Zeichenkette
|
"Diese Funktion gibt die eingegebene Zeichenkette von hinten nach vorn gelesen aus.")
|
||||||
von hinten nach vorn gelesen aus.\n""")
|
|
||||||
else:
|
else:
|
||||||
Ausgabe.insert(1.0, eingabetext[::-1] + "\n")
|
return eingabetext[::-1]
|
||||||
|
|
||||||
|
def zeichenzaehlen(eingabetext):
|
||||||
def zeichenzaehlen():
|
|
||||||
|
|
||||||
eingabetext = Eingabe.get(1.0, END)
|
|
||||||
eingabetext = eingabetext.rstrip()
|
eingabetext = eingabetext.rstrip()
|
||||||
if eingabetext == "":
|
if eingabetext == "":
|
||||||
Ausgabe.insert(1.0, """HILFE: [Zeichenzählen]
|
return ("### HILFE: [Zeichenzählen]\n"
|
||||||
Es wird das Vorkommen jedes einzelnen Zeichens gezählt
|
"Es wird das Vorkommen jedes einzelnen Zeichens gezählt und ausgegeben. Achtung! Leerzeichen,"
|
||||||
und ausgegeben.
|
" Tabulatorzeichen und Zeilenumbrüche werden nur vor dem letzten sichtbaren Zeichen gezählt!!!")
|
||||||
Achtung! Leerzeichen, Tabulatorzeichen und Zeilenumbrüche
|
|
||||||
werden nur vor dem letzten sichtbaren Zeichen gezählt!!!""" + "\n\n")
|
|
||||||
else:
|
else:
|
||||||
|
ausgabetext = ""
|
||||||
anzahl = {}
|
anzahl = {}
|
||||||
for b in eingabetext:
|
for b in eingabetext:
|
||||||
if b in anzahl:
|
if b in anzahl:
|
||||||
@@ -211,18 +197,19 @@ werden nur vor dem letzten sichtbaren Zeichen gezählt!!!""" + "\n\n")
|
|||||||
s = []
|
s = []
|
||||||
for key in anzahl:
|
for key in anzahl:
|
||||||
s.append(key)
|
s.append(key)
|
||||||
s.sort(reverse=True)
|
s.sort()
|
||||||
|
ausgabetext += f"Es wurden {len(anzahl)} unterschiedliche Zeichen gefunden. \n"
|
||||||
|
ausgabetext += "| Zeichen | Anzahl |\n|----|----|\n"
|
||||||
for i in s:
|
for i in s:
|
||||||
if ord(i) == 9:
|
if ord(i) == 9:
|
||||||
Ausgabe.insert(1.0, "[TAB] = {} mal\n".format(anzahl[i]))
|
ausgabetext += f"|TAB|{anzahl[i]}|\n"
|
||||||
elif ord(i) == 32:
|
elif ord(i) == 32:
|
||||||
Ausgabe.insert(1.0, "[SPACE] = {} mal\n".format(anzahl[i]))
|
ausgabetext += f"|SPACE|{anzahl[i]}|\n"
|
||||||
elif ord(i) == 10:
|
elif ord(i) == 10:
|
||||||
Ausgabe.insert(1.0, "[LINEFEED] = {} mal\n".format(anzahl[i]))
|
ausgabetext += f"|LINEFEED| = {anzahl[i]}|\n"
|
||||||
else:
|
else:
|
||||||
Ausgabe.insert(1.0, "{} = {} mal\n".format(i, anzahl[i]))
|
ausgabetext += f"|{i}|{anzahl[i]}|\n"
|
||||||
Ausgabe.insert(1.0, "Es wurden {} unterschiedliche Zeichen gefunden.\n".format(len(anzahl)))
|
return ausgabetext
|
||||||
|
|
||||||
|
|
||||||
def quersummen():
|
def quersummen():
|
||||||
seperator = ("|,", "_", ".", "-", "/", ";", ",")
|
seperator = ("|,", "_", ".", "-", "/", ";", ",")
|
||||||
@@ -3064,7 +3051,7 @@ Koordinaten ergibt.
|
|||||||
la = float(text[0])
|
la = float(text[0])
|
||||||
lo = float(text[1])
|
lo = float(text[1])
|
||||||
if not la < -180 and not la > 180 and not lo < -180 and not lo > 180:
|
if not la < -180 and not la > 180 and not lo < -180 and not lo > 180:
|
||||||
x, y = dec_to_maptiles(la, lo, zoom)
|
x, y = helper.dec_to_maptiles(la, lo, zoom)
|
||||||
Ausgabe.insert(1.0, "Zoom:{:>2} X:{:<10} Y:{}\n".format(zoom, x, y))
|
Ausgabe.insert(1.0, "Zoom:{:>2} X:{:<10} Y:{}\n".format(zoom, x, y))
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
@@ -3072,9 +3059,9 @@ Koordinaten ergibt.
|
|||||||
elif len(text) == 2:
|
elif len(text) == 2:
|
||||||
for zoom in range(30, 0, -1):
|
for zoom in range(30, 0, -1):
|
||||||
try:
|
try:
|
||||||
la, lo = maptiles_to_dec(int(text[0]), int(text[1]), zoom)
|
la, lo = helper.maptiles_to_dec(int(text[0]), int(text[1]), zoom)
|
||||||
if not la < -180 and not la > 180 and not lo < -180 and not lo > 180:
|
if not la < -180 and not la > 180 and not lo < -180 and not lo > 180:
|
||||||
Ausgabe.insert(1.0, "Zoom:{:>2} DEG: {:<23} DEC: {} {}\n".format(zoom, dec_to_deg(la, lo),
|
Ausgabe.insert(1.0, "Zoom:{:>2} DEG: {:<23} DEC: {} {}\n".format(zoom, helper.dec_to_deg(la, lo),
|
||||||
round(la, 5), round(lo, 5)))
|
round(la, 5), round(lo, 5)))
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|||||||
Reference in New Issue
Block a user