Programm das Text verschlüsselt und wieder entschlüsselt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
phythonkid
User
Beiträge: 31
Registriert: Donnerstag 2. April 2020, 11:08

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!
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

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:

Code: Alles auswählen

for zeichen in wort:
    ...
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?
phythonkid
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)
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
phythonkid
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 :)
Benutzeravatar
__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‽
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
phythonkid
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...
Antworten