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.
Hallo zusammen!
Ich bin auf der Suche nach einem Programm, welches mir einen Text in Zahlen umwandelt. Die Zahlen sollen der jeweiligen Nummer des Buchstaben im Alphabet entsprechen. Also nein, ich suche nicht die Befehle chr() oder ord()
Es sollte ungefähr in Python Shell so ablaufen:
Geben Sie einen Satz ein
" Hallo "
Ausgabe des Programms:
8, 1, 12, 12, 15
Kennt jemand von euch zufällig solch ein Programm?
LG
@Jan163: Wobei `ord()` hier tatsächlich nützlich sein könnte.
So ein Programm ist mir nicht bekannt, das kann man sich aber leicht selbst schreiben. Einfach eine Schleife über die Zeichenkette (in Kleinbuchstaben gewandelt), schauen ob das aktuelle Zeichen zwischen "a" und "z" liegt (inklusive beider Endpunkte) und falls ja in die entsprechende Zahl umwandeln. Die sich aus dem `ord()`-Wert berechnen lässt. Die in einer Liste sammeln, und am Ende mit ", " und der `join()`-Methode auf Zeichenketten zum Ergebnis zusammenfügen.
Der Benutzer wird ja nach einem *Satz* gefragt. Wie soll denn da beispielsweise mit Leer- und Satzzeichen umgegangen werden?
“It is easier to optimize correct code than to correct optimized code.” — Bill Harlan
Du kannst aber auch umständlich ein Dictionary schreiben, bei dem jedem Buchstaben eine Zahl zugewiesen wird. Aber ich halte hier auch ord() für die bessere Wahl. Um von dem ord() Wert auf den Index im Alphabet zu kommen musst du nur 96 abziehen (bei Kleinbuchstaben).
10 O=ASC("A")-1:PRINT "GEBEN SIE EINEN SATZ EIN:":INPUT S$:N=LEN(S$)
20 FOR I=1 TO N:C$=MID$(S$,I,1):IF C$<"A" OR C$>"Z" THEN 50
30 IF I>1 THEN PRINT ",";
40 PRINT STR$(ASC(C$)-O);
50 NEXT