Seite 1 von 1

Liest string nicht richtig aus!?

Verfasst: Montag 20. Dezember 2010, 21:09
von Sans
Hi,
bin grad dabei eine Caesar Verschlüsselung zu basteln. Ich versuche,d as über das System der Ordnungszahlen zu machen.
Nun tritt bei meinem bisherigen Code aber ein Problem auf.

Code: Alles auswählen

# Ceasar Verschlüsselung

def wandeln(b, f):
   '''
   oz ist die Zahl ihm ordnungssystem
   noz ist die neue Zahl im Ordnungssystems des Verschlüsselten Buchstabens
   verschlb ist der verschlüsselte Buchstabe
   '''
   oz = int(ord(str(b)))
   noz = oz + int(f)
   verschlb = chr(noz)

#abfrage
eingabe=input("Bitte Text eingeben. Keine Umlaute!")

'''
faktor der verschlüsselung wird abgefragt
y ist die Korrektheit der eingabe
'''

y=0
faktor=input("Bitte Verschlüsselungsfaktor angeben. (Zahl zwischen 1 und 25)")

while y==0:
   try:
      int(faktor)
      y=1
   except:
      faktor=input("Falsche Eingabe. Bitte Verschlüsselungsfaktor angeben. (Zahl zwischen 1 und 25)")
else:
   int(faktor)
                          

#verschlüsselung

'''
die eingabe wird in einzelne Zeichen getrennt und das alphabet in Buchstaben zur Liste zusammengefasst.
'''

code=list(eingabe)
print(code)


verschluesselung = ''

for i in range(len(eingabe)):
   buchstabe=code[i]
   print(buchstabe)
   verschluesselung = verschluesselung + str(wandeln(buchstabe, faktor))

#Hauptprogramm
print(verschluesselung)
Als ausgabe der Verschlüsselung kommt NoneNoneNoneNone..., das heißt das Programm erkennt den Buchstaben den die Funktion "wandeln" fabrizieren sollte, nicht als solchen an. ICh finde den Grund aber nicht.

Danke
Sans

Re: Liest string nicht richtig aus!?

Verfasst: Montag 20. Dezember 2010, 21:15
von numerix
Sans hat geschrieben:Als ausgabe der Verschlüsselung kommt NoneNoneNoneNone..., das heißt das Programm erkennt den Buchstaben den die Funktion "wandeln" fabrizieren sollte, nicht als solchen an. ICh finde den Grund aber nicht.
An welcher Stelle in der Funktion hast du denn festgelegt, welcher Wert zurückgeliefert werden soll?

Re: Liest string nicht richtig aus!?

Verfasst: Montag 20. Dezember 2010, 21:36
von Sans

Code: Alles auswählen

verschluesselung = ''

for i in range(len(eingabe)):
   buchstabe=code[i]
   print(buchstabe)
   verschluesselung = verschluesselung + str(wandeln(buchstabe, faktor))
Hier sollte eigentlich für jede Stelle im COde der buchstabe ausgelesen, in den neuen konvertiert werden und an "verschluesselung" angehängt.

Umgewandelt wird hiermit:

Code: Alles auswählen

def wandeln(b, f):
   '''
   oz ist die Zahl ihm ordnungssystem
   noz ist die neue Zahl im Ordnungssystems des Verschlüsselten Buchstabens
   verschlb ist der verschlüsselte Buchstabe
   '''
   oz = int(ord(str(b)))
   noz = oz + int(f)
   verschlb = chr(noz)

Re: Liest string nicht richtig aus!?

Verfasst: Montag 20. Dezember 2010, 21:38
von numerix
Da kann ich nur die gleiche Frage noch einmal stellen:
An welcher Stelle in der Funktion hast du denn festgelegt, welcher Wert zurückgeliefert werden soll?

Re: Liest string nicht richtig aus!?

Verfasst: Montag 20. Dezember 2010, 21:46
von Sans
ich fürchte dann versteh ich wohl nicht ganz was du meinst

Re: Liest string nicht richtig aus!?

Verfasst: Montag 20. Dezember 2010, 22:16
von numerix
Sans hat geschrieben:ich fürchte dann versteh ich wohl nicht ganz was du meinst
Du erwartest von deiner Funktion wandeln(), das sie einen verschlüsselten Buchstaben zurückliefert.
Das musst du in der Funktion festlegen:

Code: Alles auswählen

return wert
Tust du das nicht, liefert die Funktion "None" zurück.

Re: Liest string nicht richtig aus!?

Verfasst: Montag 20. Dezember 2010, 22:20
von Sans
-.- Danke. Nun funktionierts