Hallo zusammen,
Ich versuche ein Programm zu erstellen, dass folgendes macht:
Das Programm soll einen Textstring (Eingabefenster) einlesen und jedes einzelne Zeichen in eine Zahl umwandeln(A->1 B->2 ... Z->26 a->27 b->28 usw.) ; diese Zahlen soll mit einem festen Wert wie im Cäsar Verfahren beschrieben verschoben werden und als verschlüsselter Text wieder ausgegeben werden.
Außerdem soll man die Verschiebung verändert werden können und ein verschlüsselter Text wieder entschlüsselt werden können.
Ich habe jetzt schon länger versucht dies zu programmieren doch leider ist bisher erst das rausgekommen:
import string
liste = []
klein = string.ascii_lowercase
gross = string.ascii_uppercase
wort = input("Text: ")
verschiebung = int(input("Verschiebung: "))
for i in range(len(wort)):
if wort in klein:
index = klein.find(wort)
umwandlung = klein[(index + verschiebung)%26]
liste.append(umwandlung)
elif wort in gross:
index = gross.find(wort)
umwandlung = gross[(index + verschiebung)%26]
liste.append(umwandlung)
else:
liste.append(wort)
chiffre = ''.join(liste for i in range(len(liste)))
print("Ergebnis:", chiffre)
Dieses Programm verschiebt die Buchstaben schon ,jedoch wandelt es sie nicht in Zahlen um und entschlüsselt sie auch nicht... Es wäre wirklich toll wenn jemand mir dabei helfen könnte!
Programm das Text verschlüsselt und wieder entschlüsselt
Deine ganzen Einrückungen sind kaputt. So kann man den Code nicht lesen. Benutze Code-Tags: </>
Schleifen über einen Index sind ein sogananntes Anti-Pattern. Man kann auch direkt über die Zeichen eines Strings iterieren:
Sollen die klein- und groß-Buchstaben unabhänig voneinander geshiftet werden? Nach Aufgabenstellung sieht es so aus, als ob Groß- und Kleinbuchstaben eine Menge bilden.
Du wandelst schon in Zahlen. Es wundert mich, wie Du das programmieren konntest, ohne das zu erkennen.
Was ist der Unterschied zwischen Ver- und Entschlüsseln?
Schleifen über einen Index sind ein sogananntes Anti-Pattern. Man kann auch direkt über die Zeichen eines Strings iterieren:
Code: Alles auswählen
for zeichen in wort:
...
Du wandelst schon in Zahlen. Es wundert mich, wie Du das programmieren konntest, ohne das zu erkennen.
Was ist der Unterschied zwischen Ver- und Entschlüsseln?
-
- User
- Beiträge: 31
- Registriert: Donnerstag 2. April 2020, 11:08
Code: Alles auswählen
import string
liste = []
klein = string.ascii_lowercase
gross = string.ascii_uppercase
wort = input("Text: ")
verschiebung = int(input("Verschiebung: "))
for i in range(len(wort)):
if wort in klein:
index = klein.find(wort)
umwandlung = klein[(index + verschiebung)%26]
liste.append(umwandlung)
elif wort in gross:
index = gross.find(wort)
umwandlung = gross[(index + verschiebung)%26]
liste.append(umwandlung)
else:>
liste.append(wort)
chiffre = ''.join(liste for i in range(len(liste)))
print("Ergebnis:", chiffre)
So, die Einrückungen sind immer noch kaputt, was Du auch gleich beim Starten am IndentationError siehst. Eingerückt wird immer mit vier Leerzeichen pro Ebene. Da ist auch so ein verirrtes > - Zeichen. `i` wird nirgends verwendet, was später dann auch zu Problemen führt.
Variablen sollten so spät wie möglich initialiisert werden. `liste` wird viel früher als es gebraucht wird initialisiert.
Variablen sollten so spät wie möglich initialiisert werden. `liste` wird viel früher als es gebraucht wird initialisiert.
-
- User
- Beiträge: 31
- Registriert: Donnerstag 2. April 2020, 11:08
Danke für die Rückmeldung! Ich habe gerade noch etwas am Code gearbeitet und bin nun zu meiner gewünschten Lösung gekommen! Danke
- __blackjack__
- User
- Beiträge: 13111
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Sirius3: pythonkid hat da nichts von selbst programmiert, sondern von hier 1:1 geklaut: https://trainyourprogrammer.de/python-A ... sseln.html
@pythonkid: Dir ist klar das Lehrer auch Suchmaschinen bedienen können‽
@pythonkid: Dir ist klar das Lehrer auch Suchmaschinen bedienen können‽
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- User
- Beiträge: 31
- Registriert: Donnerstag 2. April 2020, 11:08
@_blackjack_ ja das weiß ich natürliich und ich bin ja nicht dumm und gebe das so ab.. ich verändere natürlich ein paar Namen der Variablen und auch die Struktur! Außerdem ist das njur ein teil meiner aufgabe also habe ich hinten selber noch etwas drangehangen...