Python :: Aufgabe #360 :: Lösung #1

2 Lösungen Lösungen öffentlich
#360

Ziffern durch Kleinbuchstaben ersetzen (right-shifting)

Anfänger - Python von JKooP - 22.05.2021 um 16:57 Uhr
Gegeben ist ein String (Text) bestehend aus Kleinbuchstaben und den Ziffern 0 bis 9.
Die Buchstaben stehen an den geraden und die Ziffern an den ungeraden Stellen (zero-based).
Ziel soll es sein, jede Ziffer durch einen Buchstaben zu ersetzen, indem der vorangestellte Buchstabe
um den Wert der Ziffer gemäß Alphabet nach rechts verschoben wird (right-shifting).
Die Buchstaben bleiben dabei erhalten.
Bei der Erstellung des Ausgangs-Strings soll darauf geachtet werden, dass das Verschieben nicht über 'z' hinausgeht.

Beispiele:

s = "a1c1e1"
Lösung: "abcdef", denn
a >> 1 -> b
c >> 1 -> d
e >> 1 -> f

s = "a4b2c1d5"
Lösung: "aebdcddi", denn
a >> 4 -> e
b >> 2 -> d
c >> 1 -> d
d >> 5 -> i

Erstelle eine Methode/Funktion, die obige Aufgabenstellung umsetzt.
Wer möchte kann die Aufgabe dahingehend erweitern, dass über 'z' hinaus
verschoben wird und das Alphabet von vorne beginnt.

Viel Spaß
#1
vote_ok
von eisheiliger (3750 Punkte) - 17.07.2021 um 19:13 Uhr
Quellcode ausblenden Python-Code

"""
#360: Ziffern durch Kleinbuchstaben ersetzen (right-shifting)
Ziel soll es sein, jede Ziffer durch einen Buchstaben zu ersetzen, indem der vorangestellte Buchstabe um den Wert der
Ziffer gemäß Alphabet nach rechts verschoben wird (right-shifting). Die Buchstaben bleiben dabei erhalten. Über 'z'
hinaus beginnt das Alphabet von vorne.
"""


def ri_shi(s):
    o = ""
    for i in range(1, len(s), 2):
        o += (s[i - 1])
        o += chr((ord(s[i - 1]) + int(s[i]) - 97) % 26 + 97)
    print(s, " -> ", o)


ri_shi("a1c1e1")
ri_shi("a4b2c1d5")
ri_shi("x9y8z7")


Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben