
Ich habe mich etwas mit Python beschäftigt und für meine Facharbeit in Mathe auch mein erster kleines "Programm" geschrieben, dass einen Text (auch aus einer Textdatei) verschlüsselt und den Geheimtext wiedergibt.
Kommentare/Anregungen/Kritik/... zum Code, Programmierstil und den Anmerkungen (musste ich für den Lehrer machen) nehme ich gerne entgegen.
Hier der Code:
Code: Alles auswählen
print "Viel Spass mit meinem Programm fuer eine Caesar-Verschluesselung"
print "Bei einer Entschluesselung bitte das negative Vorzeichen beachten!"
#Verschiebung um x Stellen
print
x = int(raw_input('Um wieviele Stellen soll das Alphabet verschoben werden? '))
#Textdatei ausgeben?
a = raw_input('Soll eine Textdatei ausgegeben werden (j/n)? ')
if a == "j":
a = 1
else:
a = 0
#Bearbeitung des zu verschluesselnden Textes
#Soll eine Textdatei importiert werden?
b = raw_input('Soll eine Textdatei importiert werden (j/n)? ')
if b == "j":
b = 1
else:
b = 0
#Eingabe des zu verschluesselnden Textes
#Aus Textdatei
if b == 1:
c = raw_input('Bitte Verzeichnis und Dateiname der .txt-Datei angeben: ')
e = file(c, 'rb')
t = e.read()
e.close()
#Als Eingabe
else:
t = raw_input('Einen Text zum Verschluesseln/Entschluesseln eingeben: ')
#Umwandlung in eine Liste
l = list(t)
#Umwandlungvorschrift der eingegeben Buchstaben (mithilfe eines Dictionaries)
d = { "a":0 , "b":1 , "c":2 , "d":3 , "e":4 ,
"f":5 , "g":6 , "h":7 , "i":8 , "j":9 ,
"k":10, "l":11, "m":12, "n":13, "o":14,
"p":15, "q":16, "r":17, "s":18, "t":19,
"u":20, "v":21, "w":22, "x":23, "y":24, "z":25 }
#Umwandlungsvorschrift der Zahlen in Buchstaben
e = { 0 :"a", 1 :"b", 2 :"c", 3 :"d", 4 :"e",
5 :"f", 6 :"g", 7 :"h", 8 :"i", 9 :"j",
10:"k", 11:"l", 12:"m", 13:"n", 14:"o",
15:"p", 16:"q", 17:"r", 18:"s", 19:"t",
20:"u", 21:"v", 22:"w", 23:"x", 24:"y", 25:"z" }
#Verschluesselung
#Leere Hilfsliste definieren
m = []
#Verschluesselung der einzelnen Buchstaben mit 'while'-Schleife
i = 0
while i < len(l):
m.append(e[(d[l[i]] + x)%26])
i = i + 1
#Ausgabe
#Hilfsstring definieren
s = ""
#Ausgabe als Textblock
j=0
while j < len(m):
s = s + m[j]
j = j + 1
#Ausgabe in Konsole
if a == 0:
print
print "Dies ist der Geheimtext: "+s
#Ausgabe als Textdatei
else:
f = file('C:\crypto.txt', 'w')
f.write(s)
f.close()
print
print "Die Textdatei befindet sich unter C:\crypto.txt"
#Beenden
print
raw_input('Zum Beenden "Enter" druecken')
Vielen Dank für Antworten!
Edit (Leonidas): Code-Highlighting aktiviert.
Edit(Klapperschlange): Danke, habs eben selber nachgeschaut, weil ich mich gewundert hatte, wieso das nicht geklappt hat