Python-Verschlüsslung Programmieren?

... komplette Frage anzeigen

1 Antwort

Der User gibt einen Text und eine ganze Zahl ein, sagen wir

inText = "abcdefghijklmnopq"

height = 4

als nächstes wird "width" berechnet. Width gibt an, wie oft die Zahl "height" in die Buchstabenzahl von inText reinpasst. Geht es genau auf, gibt er die Anzahl an. Gibt es einen Rest, wird aufgerundet. Im Beispiel oben: inText ist eine Zeichenkette von Länge 17. Da passt die 4 viermal rein und weil es noch einen Rest gibt, wird die Zahl um eins erhöht. Width ist somit 5.

Erklärung: a % b heißt so viel wie "der Rest der Division a/b". 6 % 3 = 0. 6 % 4 = 2. 6 % 5 = 1 usw.

Als nächstes fügt er dem String "arrChiffre" eine leere Liste hinzu. Die leere Liste sieht dann so aus:

>>> arrChiffre 
[ [] ]

Also eine Liste, bestehend aus einer leeren Listen, die jetzt befüllt wird:

Solange die Länge des Textes (wir erinnern uns: inText hat 17 Zeichen) größer ist als die Variable numCount (die zunächst auf 0 gesetzt ist), wird in die leere Liste ein Buchstabe eingetragen. Nämlich der Buchstabe von inText an der Stelle von numCount. Als allererstes ist das also der Buchstabe mit Index 0, also das "a" unserer Zeichenkette. Anschließend wird numCount um 1 erhöht. Dieser Vorgang wird width-mal wiederholt (in meinem Fall fünf mal). Lustigerweise wird der entsprechende Buchstabe inText[numCount] immer an die gleiche Stelle von arrChiffre gesetzt. Die For-Loop mit dem Iterator "y" wird überhaupt nicht mehr aufgegriffen, sondern immer nur auf "x", welches die Stelle in arrChiffre ist, in die ein Buchstabe eingesetzt wird.
Auf jeden Fall wird arrChiffre an der Stelle x um ein leeres Element erweiter (append("")), wenn numCount größer wird als der Anzahl an Text (das kann in meinem Beispiel nicht passieren, denn die Schleife bricht vorher ab)

Wenn die Schleife fertig ist, also arrChiffre height-mal eine leere Liste bekommen hat und diverse Male der Wert an der Stelle x überschrieben wurde, wird dir arrChiffre ausgegeben.

Zuletzt erfolgt die eigentliche Verschlüsselung. i ist zunächst gleich 0 (das wurde zu Beginn festgelegt). Es wird jetzt von jedem Listenelement in arrChiffre der Buchstabe mit Index 0 einer Zeichenkette outText hinzugefügt. Wenn er alle Buchstaben durch hat, erhöht er den Index um 1 und fügt somit immer den zweiten Buchstaben aller Listenelemente an.

Ich würde es dir gerne ausführlicher erklären, aber:

Der Code sieht furchtbar aus. Er enhält meiner Meinung auch Fehler oder zumindest etliche Ungereimheiten. Außerdem will ich hoffen, dass ihr mit Python 3 programmiert, da input sonst raw_input sein sollte. Auch das ganze "append" ist wirklich sehr unelegant gelöst und sorgt letztlich für deine Verwirrung.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Anonym8952
29.11.2016, 19:41

Vielen Dank. Ist nicht mein Code :D

0
Kommentar von Anonym8952
29.11.2016, 19:46

Ich hätte noch eine Frage. Wo haben sie das Programmieren gelernt? Das würde mich wirklich interessieren, da ich sehr neugierig bin.. Mit freundlichen Grüßen

0

Was möchtest Du wissen?