morse<->abc, rot5,13,18,47
This commit is contained in:
125
app/tools.py
125
app/tools.py
@@ -119,7 +119,7 @@ def buchstabenwortwert(eingabetext):
|
||||
ausgabe += str(wortprodukt) + "|\n"
|
||||
return ausgabe
|
||||
|
||||
def buchstabenwertzutext(eingabetext):
|
||||
def buchstabenwert_zu_text(eingabetext):
|
||||
seperator = ("|,", "_", ".", "-", "/", ";", ",")
|
||||
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',
|
||||
@@ -172,7 +172,7 @@ def buchstabenwertzutext(eingabetext):
|
||||
ausgabe_text += atxt
|
||||
return ausgabe_text
|
||||
|
||||
def zeichenkette_rueckwaerts(eingabetext):
|
||||
def zeichenkette_reverse(eingabetext):
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
return ("### Zeichenkette rückwärts\n"
|
||||
@@ -180,7 +180,7 @@ def zeichenkette_rueckwaerts(eingabetext):
|
||||
else:
|
||||
return eingabetext[::-1]
|
||||
|
||||
def zeichenzaehlen(eingabetext):
|
||||
def zeichenanzahl(eingabetext):
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
return ("### Zeichenzählen\n"
|
||||
@@ -257,7 +257,7 @@ def quersummen(eingabetext):
|
||||
ausgabetext += iqtxt[:-1]
|
||||
return ausgabetext
|
||||
|
||||
def einschluesse(eingabetext):
|
||||
def einschluss_count(eingabetext):
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
return ("### Einschlüsse zählen\n"
|
||||
@@ -298,8 +298,8 @@ def einschluesse(eingabetext):
|
||||
for z in wortsummenliste_ohne:
|
||||
ausgabetext += f"{z} "
|
||||
return ausgabetext
|
||||
'''
|
||||
def morsetoabc():
|
||||
|
||||
def morse_to_abc(eingabetext):
|
||||
alphabet = {".-": "A", "-...": "B", "-.-.": "C", "-..": "D", ".": "E", "..-.": "F", "--.": "G", "....": "H",
|
||||
"..": "I", ".---": "J", "-.-": "K", ".-..": "L",
|
||||
"--": "M", "-.": "N", "---": "O", ".--.": "P", "--.-": "Q", ".-.": "R", "...": "S", "-": "T",
|
||||
@@ -311,16 +311,12 @@ def morsetoabc():
|
||||
"-..-.": "/", ".-.-.-": ".", "-....-": "-", "--..--": ",", ".-.-.": "+", "-.--.-": ")", "-.--.": "(",
|
||||
".----.": "'", "...--..": "ß"
|
||||
}
|
||||
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
Ausgabe.insert(1.0, """HILFE: [Morsecode zu Text]
|
||||
Die Eingabe des Morsecodes hat wie folgt zu erfolgen:
|
||||
- für lang und . für kurz, zwischen den Buchstaben ein
|
||||
Leerzeichen und als Worttrennung ein / wobei davor und
|
||||
danach ein Leerzeichen steht.
|
||||
Für unbekannte Morsecodes erscheint in der Ausgabe ein #.""" + "\n\n")
|
||||
return ("### Morsecode zu Text\n"
|
||||
"Die Eingabe des Morsecodes hat wie folgt zu erfolgen: - für lang und . für kurz, zwischen den "
|
||||
"Buchstaben ein Leerzeichen und als Worttrennung ein / wobei davor und danach ein Leerzeichen steht. "
|
||||
"Für unbekannte Morsecodes erscheint in der Ausgabe ein #.")
|
||||
else:
|
||||
morse = eingabetext.split()
|
||||
atxt = ""
|
||||
@@ -331,10 +327,9 @@ Für unbekannte Morsecodes erscheint in der Ausgabe ein #.""" + "\n\n")
|
||||
atxt = atxt + "#"
|
||||
else:
|
||||
atxt = atxt + alphabet[sign]
|
||||
Ausgabe.insert(1.0, atxt + "\n")
|
||||
return atxt
|
||||
|
||||
|
||||
def abctomorse():
|
||||
def abc_to_morse(eingabetext):
|
||||
alphabet = {".-": "A", "-...": "B", "-.-.": "C", "-..": "D", ".": "E", "..-.": "F", "--.": "G", "....": "H",
|
||||
"..": "I", ".---": "J", "-.-": "K", ".-..": "L",
|
||||
"--": "M", "-.": "N", "---": "O", ".--.": "P", "--.-": "Q", ".-.": "R", "...": "S", "-": "T",
|
||||
@@ -347,14 +342,11 @@ def abctomorse():
|
||||
".----.": "'", "...--..": "SS"
|
||||
}
|
||||
umkehr_alpha = {v: k for k, v in alphabet.items()} # Alphabet mit getauschten key und values generieren
|
||||
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
Ausgabe.insert(1.0, """HILFE: [Text zu Morsecode]
|
||||
Eingabetext wird als Morsecode ausgegeben.
|
||||
Nicht kodierbare Zeichen erscheinen unverändert
|
||||
in der Ausgabe.""" + "\n\n")
|
||||
return ("### Text zu Morsecode\n"
|
||||
"Eingabetext wird als Morsecode ausgegeben. Nicht kodierbare Zeichen erscheinen unverändert "
|
||||
"in der Ausgabe.")
|
||||
else:
|
||||
atxt = ""
|
||||
for b in eingabetext:
|
||||
@@ -364,22 +356,17 @@ in der Ausgabe.""" + "\n\n")
|
||||
atxt = atxt + b + " "
|
||||
else:
|
||||
atxt = atxt + umkehr_alpha[b.upper()] + " "
|
||||
Ausgabe.insert(1.0, atxt + "\n")
|
||||
return atxt
|
||||
|
||||
|
||||
def rot5():
|
||||
def rot5(eingabetext):
|
||||
ro5 = {"0": "5", "1": "6", "2": "7", "3": "8", "4": "9", "5": "0", "6": "1", "7": "2", "8": "3", "9": "4"}
|
||||
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
Ausgabe.insert(1.0, """HILFE: [ROT 5]
|
||||
ROT 5 bezeichnet eine Verschiebechiffrierung, bei
|
||||
welcher die Ziffern 0-9 um je 5 Stellen verschoben
|
||||
werden. Aus 0 wird 5, aus 1 wird 6, aus 7 wird 2,usw.
|
||||
Kodieren und Dekodieren geschieht hier mit ein und
|
||||
derselben Funktion, alle Zeichen die keine Ziffern
|
||||
sind werden unverändert wiedergegeben.""" + "\n\n")
|
||||
return ("### ROT 5\n"
|
||||
"ROT 5 bezeichnet eine Verschiebechiffrierung, bei welcher die Ziffern 0-9 um je 5 Stellen "
|
||||
"verschoben werden. Aus 0 wird 5, aus 1 wird 6, aus 7 wird 2,usw. Kodieren und Dekodieren "
|
||||
"geschieht hier mit ein und derselben Funktion, alle Zeichen die keine Ziffern sind werden "
|
||||
"unverändert wiedergegeben.")
|
||||
else:
|
||||
atxt = ""
|
||||
for z in eingabetext:
|
||||
@@ -387,27 +374,21 @@ sind werden unverändert wiedergegeben.""" + "\n\n")
|
||||
atxt = atxt + z
|
||||
else:
|
||||
atxt = atxt + ro5[z]
|
||||
Ausgabe.insert(1.0, atxt + "\n")
|
||||
return atxt
|
||||
|
||||
|
||||
def rot13():
|
||||
def rot13(eingabetext):
|
||||
ro13 = {'A': 'N', 'B': 'O', 'C': 'P', 'D': 'Q', 'E': 'R', 'F': 'S', 'G': 'T', 'H': 'U', 'I': 'V', 'J': 'W',
|
||||
'K': 'X', 'L': 'Y', 'M': 'Z',
|
||||
'N': 'A', 'O': 'B', 'P': 'C', 'Q': 'D', 'R': 'E', 'S': 'F', 'T': 'G', 'U': 'H', 'V': 'I', 'W': 'J',
|
||||
'X': 'K', 'Y': 'L', 'Z': 'M'}
|
||||
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
Ausgabe.insert(1.0, """HILFE: [ROT 13]
|
||||
ROT 13 bezeichnet eine Verschiebechiffrierung, bei
|
||||
welcher die 26 Buchstaben (A-Z) um genau 13 Stellen
|
||||
verschoben werden. Da dies genau die Hälfte des Alphabets
|
||||
ist, wird z.B. aus einem A ein N und aus einem N ein A
|
||||
und somit wird über die selbe Funktion sowohl kodiert als
|
||||
auch dekodiert. Die Klein- und Großschreibung bleibt
|
||||
erhalten und alle Zeichen die keine Buchstaben sind
|
||||
werden unverändert wiedergegeben.""" + "\n\n")
|
||||
return ("### ROT 13\n"
|
||||
"ROT 13 bezeichnet eine Verschiebechiffrierung, bei welcher die 26 Buchstaben (A-Z) um genau "
|
||||
"13 Stellen verschoben werden. Da dies genau die Hälfte des Alphabets ist, wird z.B. aus einem "
|
||||
"A ein N und aus einem N ein A und somit wird über die selbe Funktion sowohl kodiert als auch "
|
||||
"dekodiert. Die Klein- und Großschreibung bleibt erhalten und alle Zeichen die keine Buchstaben "
|
||||
"sind werden unverändert wiedergegeben.")
|
||||
else:
|
||||
atxt = ""
|
||||
for z in eingabetext:
|
||||
@@ -418,26 +399,21 @@ werden unverändert wiedergegeben.""" + "\n\n")
|
||||
atxt = atxt + a.lower()
|
||||
else:
|
||||
atxt = atxt + ro13[z.upper()]
|
||||
Ausgabe.insert(1.0, atxt + "\n")
|
||||
return atxt
|
||||
|
||||
|
||||
def rot18():
|
||||
def rot18(eingabetext):
|
||||
ro18 = {'A': 'N', 'B': 'O', 'C': 'P', 'D': 'Q', 'E': 'R', 'F': 'S', 'G': 'T', 'H': 'U', 'I': 'V', 'J': 'W',
|
||||
'K': 'X', 'L': 'Y', 'M': 'Z',
|
||||
'N': 'A', 'O': 'B', 'P': 'C', 'Q': 'D', 'R': 'E', 'S': 'F', 'T': 'G', 'U': 'H', 'V': 'I', 'W': 'J',
|
||||
'X': 'K', 'Y': 'L', 'Z': 'M',
|
||||
"0": "5", "1": "6", "2": "7", "3": "8", "4": "9", "5": "0", "6": "1", "7": "2", "8": "3", "9": "4"}
|
||||
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
Ausgabe.insert(1.0, """HILFE: [ROT 18]
|
||||
ROT 18 ist eigentlich nix anderes als, daß hier ROT 5
|
||||
mit ROT 13 kombiniert wird. Die Buchstaben A-Z werden
|
||||
um 13 Stellen verschoben und die Ziffern 0-9 um 5 Stellen.
|
||||
Alle sonstigen Zeichen bleiben unverändert und die Kleine-
|
||||
oder Großschreibung bleibt auch erhalten, und auch hier
|
||||
kodiert/dekodiert ein und dieselbe Funktion.""" + "\n\n")
|
||||
return ("### ROT 18\n"
|
||||
"ROT 18 ist eigentlich nix anderes als, daß hier ROT 5 mit ROT 13 kombiniert wird. Die Buchstaben "
|
||||
"A-Z werden um 13 Stellen verschoben und die Ziffern 0-9 um 5 Stellen. Alle sonstigen Zeichen "
|
||||
"bleiben unverändert und die Klein- oder Großschreibung bleibt auch erhalten, und auch hier "
|
||||
"kodiert/dekodiert ein und dieselbe Funktion.")
|
||||
else:
|
||||
atxt = ""
|
||||
for z in eingabetext:
|
||||
@@ -448,24 +424,17 @@ kodiert/dekodiert ein und dieselbe Funktion.""" + "\n\n")
|
||||
atxt = atxt + a.lower()
|
||||
else:
|
||||
atxt = atxt + ro18[z.upper()]
|
||||
Ausgabe.insert(1.0, atxt + "\n")
|
||||
return atxt
|
||||
|
||||
|
||||
def rot47():
|
||||
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
def rot47(eingabetext):
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
Ausgabe.insert(1.0, """HILFE: [ROT 47]
|
||||
Bei ROT47 geschieht eigentlich nix anderes als
|
||||
bei ROT5 oder ROT13 nur das hier die druckbaren
|
||||
ASCII-Zeichen mit den Werten 33-126(dezimal) zur
|
||||
Auswahl stehen, also nahezu alle Zeichen die auf
|
||||
eine Standardtastatur aufgedruckt sind.
|
||||
Das Ergebnis ist aber deutlich unlesbarer als
|
||||
z.B. bei ROT13. Alle weiteren Zeichen (z.B. ÄÖÜß)
|
||||
werden unverändert wiedergegeben und auch hier
|
||||
kodiert/dekodiert ein und dieselbe Funktion.""" + "\n\n")
|
||||
return ("### ROT 47\n"
|
||||
"Bei ROT47 geschieht eigentlich nix anderes als bei ROT5 oder ROT13 nur das hier die druckbaren "
|
||||
"ASCII-Zeichen mit den Werten 33-126(dezimal) zur Auswahl stehen, also nahezu alle Zeichen die auf "
|
||||
"eine Standardtastatur aufgedruckt sind. Das Ergebnis ist aber deutlich unlesbarer als z.B. bei "
|
||||
"ROT13. Alle weiteren Zeichen (z.B. ÄÖÜß) werden unverändert wiedergegeben und auch hier "
|
||||
"kodiert/dekodiert ein und dieselbe Funktion.")
|
||||
else:
|
||||
x = []
|
||||
for i in eingabetext:
|
||||
@@ -474,9 +443,9 @@ kodiert/dekodiert ein und dieselbe Funktion.""" + "\n\n")
|
||||
x.append(chr(33 + ((j + 14) % 94)))
|
||||
else:
|
||||
x.append(i)
|
||||
Ausgabe.insert(1.0, ''.join(x) + "\n")
|
||||
|
||||
return ''.join(x)
|
||||
|
||||
'''
|
||||
def asciitodez():
|
||||
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
|
||||
Reference in New Issue
Block a user