Forum / Grundlagen des Programmierens / Buchstabensumme - erfundene Aufgabe zur Vorbereitung aufs 1. Koll

Buchstabensumme - erfundene Aufgabe zur Vorbereitung aufs 1. Koll

Ich hab mir eine Aufgabe ausgedacht:

""" Erstelle eine Funktion, die jedem Wort seine Buchstabensumme zuweist. Die Buchstabensumme von a ist 1. Die von b ist 2. Und die von D wäre 4. Die Buchstabensumme von aabd ist somit 1+1+2+4=8 """

Wer will, kann sie selbst lösen und danach mit meiner Lösung (Quellcode ist im Anhang) vergleichen. Es gibt sicher auch elegantere Lösungen, die man auch posten könnte, zum vergleichen.

Annika ±0
Andere Lösung

Ich hab's so gemacht. Hat halt zwei Funktionen und ist auch nicht viel eleganter.....

Arne ±0

Gute Idee Olivo :) Ich habs so gemacht, vlt gehts auch noch einfacher und schneller.... Grüße

Annika ±0
Ohne abc tippen?

Würde mich echt interessieren, ob das auch ohne das ABC zu tippen geht. Python erkennt ja sowas wie a> f als False und sowas wie f>a als True, kann also auch strings wie Zahlen vergleichen. Damit sollte man doch was anfangen können, oder?

Roman ±0
Ohne Alphabet abtippen

Geht ganz einfach, wenn man die ord() Funktion verwendet:

def BuchstabenSumme(string): zahl=0 for b in string.lower(): [INDENT] zahl += ord(b)-96 return zahl[/INDENT]

Allerding muss man beachten, dass die Zahl nach ASCII-Code ausgegeben wird aus "a" wird also 97, aus "b" 98 und so weiter. Zieht man 96 ab, stimmt das Ergebnis. Aber Achtung "A" ist 65. Den String in Kleinbuchstaben umzuwandeln ist also wichtig.

Annika ±0

Super, danke. Das ist natürlich ein Unterschied wie Tag und Nacht. Dachte mir schon, dass da irgendeine "Ordnung" hinter den Buchstaben vorhanden sein muss, die dann wieder auf Zahlen basiert. Hier kann man sich Buchstaben "kodieren":

https://gc.de/gc/ascii/

stephan ±0

Habs so gelöst, aber auch wieder mit ABC...

Annika ±0
Noch eine erfundene Aufgabe

Ich hab mir eine Funktion ausgedacht, die testet, ob ein Wort ein Palindrom ist, also vorwärts und rückwärts gleich ist. Code im Anhang. Viel Spaß.