Danke für den Tipp, ich habs mir mal durchgelesen. Das mit der Variablen hat mir sehr geholfen
Mittlerweile habe ich noch eine while-Schleife drum herum gebaut, damit nicht nur ein Buchstabe ersetzt werden kann und auch das ersetzen eines Buchstabens hat funktioniert
Jetzt habe ich allerdings das Problem, dass ich zwar einen Buchstaben ändern kann, die Änderung aber irgendwie nicht gespeichert werden kann und ich so den Text, der schon übersetzt war nicht weiter übersetzen kann. ich habe versucht ihn in einer anderen Variablen zu speichern, aber es gibt sicher eine weniger komplizierte Weise, als jeden weiteren Text in einer anderen Variablen zu speichern...
Code: Alles auswählen
##Projekt Kryptologie
##strings
alphabet = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K" ,"L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
haeufigkeit = ["e", "n", "d", "s", "r", "a", "t", "i", "h", "u", "l", "c", "g", "m", "o", "b", "w", "f", "k", "z", "p", "v", "j", "y", "x", "q"]
##Datei einlesen
x = input ("Bitte geben Sie Ihre zu entschlüsselnde Datei an: ")
text = open(x).read()
text = text.upper()
print ()
print ("Ihr verschlüsselter Text: ")
print()
print (text)
##Häufigkeitsanalyse
anzahl = [["A", 0],["B", 0],["C", 0],["D", 0],["E", 0],["F", 0],["G", 0],["H", 0],["I", 0],["J", 0],["K", 0],["L", 0],["M", 0],["N", 0],["O", 0],["P", 0],["Q", 0],["R", 0],["S", 0],["T", 0],["U", 0],["V", 0],["W", 0],["X", 0],["Y", 0], ["Z", 0]]
b = 0
for buchstabe in alphabet:
for buchstabe in text.upper():
if buchstabe == alphabet[b]:
anzahl[b][1] = anzahl[b][1] + 1
b += 1
##Zahlen nach Häufigkeit sortieren
def bubblesort(anzahl): #bubblesort definieren
#Daten enthält eine Liste von vergleichbaren Objekten, d.h. man kann Anzahl nach Größe sortieren
anfang = 0
ende = len(anzahl)-1
durchlauf = 0
while durchlauf < ende:
#i entspricht aktuell
i = 0
while i < ende:
if anzahl[i][1]<anzahl[i+1][1]:
x = anzahl[i]
anzahl[i] = anzahl[i+1]
anzahl[i+1] = x
i += 1
durchlauf += 1
return anzahl
print()
print (bubblesort(anzahl))
##Ersetzungstabelle
print ()
print ("Hier ist die Hauefigkeit von deutschen Texten vom meist genutzen Buchstabe, zum wenigsten benutzten Buchstabe sortiert. Benutze diese, um Deinen Text gut zu übersetzen!")
print (haeufigkeit)
print ()
print ("Möchten Sie Buchstaben durch andere ersetzen? (ja oder nein): ")
eingabe = input()
eingabe = eingabe.lower()
def ersetzen(text):
tneu = text.replace(alt, neu)
return tneu
while eingabe == "ja":
if eingabe == "ja":
alt = input("Bitte gebe den zu Buchstabe, den du ersetzen willst ein: ")
alt = alt.upper()
neu = input("Bitte gebe den Buchstabe ein, den du statt dem alten Buchstaben haben möchtest: ")
neu = neu.lower()
tneu = text.replace (alt, neu)
print ()
ersetzen(text)
print ("Ihr ersetzter Text: ")
print ()
print (tneu)
print ()
print ("Möchten Sie Buchstaben durch andere ersetzen? (ja oder nein): ")
eingabe = input()
eingabe = eingabe.lower()
Soweit bin ich mittlerweile, es wird auch kein Fehler angezeigt, ich kann die Buchstaben so oft ändern wie ich möchte, aber halt leider nur getrennt