Python :: Aufgabe #117 :: Lösung #3

6 Lösungen Lösungen öffentlich
#117

Pig Latin - Schweine Latein

Anfänger - Python von DrizZle - 15.06.2016 um 13:57 Uhr
Hier zum Wikipedia Post

Einführung:

Zitat:

Pig Latin (engl.; wörtlich: Schweine-Latein) bezeichnet eine Spielsprache, die im englischen Sprachraum verwendet wird.
Sie wird vor allem von Kindern benutzt, aus Spaß am Spiel mit der Sprache oder als einfache Geheimsprache, mit der Informationen vor Erwachsenen oder anderen Kindern verborgen werden sollen.


Erklärung:

Zitat:

Beginnt das Wort mit einem Konsonanten, so wird der initiale Konsonant oder Konsonantencluster ans Ende des Wortes verschoben und ein „ay“ angehängt. Zu betrachten ist hierbei nicht die Rechtschreibung, sondern die tatsächliche Aussprache: „Stumme“ Konsonantenbuchstaben, wie z. B. das „h“ in „honor“, sind keine Konsonanten.

loser → oser-lay
button → utton-bay
star → ar-stay
three → ee-thray
question → estion-quay
happy → appy-hay
Pig Latin → Ig-pay Atin-lay

Beginnt das Wort mit einem Vokal oder einem stummen Konsonanten, so wird direkt ein „ay“ angehängt.

eagle → eagle-ay
America → America-ay
honor → honor-ay


Aufgabe:
Schreibt ein Programm welches ein belibiges Wort ins Schweine Latein umwandelt und ausgibt. Auf die Regel mit Stummen H's kann man verzichten.
#3
3 Kommentare
vote_ok
von ZRX88 (2770 Punkte) - 29.11.2016 um 22:11 Uhr
Quellcode ausblenden Python-Code
""" pig latin """
# https://de.wikipedia.org/wiki/Konsonantencluster
Konsonaten_cluser = 'bl, br, ch, chl, chr,dr, dw,fl, fr,gl, gn, gr,kh, khm, kl, kn, kr, pf, pfl, pfr, pl, pn, pr, ps, ph, phl, phr, rh, sk, skl, skr, sl, sp, sph, spl, spr, st, str, sz, sch, schl, schm, schn, schr, schw,th, thr, tr, vl ,wr, zw'.split(', ')
vocals = 'a, e, u, o, i, h'.split(', ')

word = raw_input('Please enter a word: ')

if word[:2] in Konsonaten_cluser:
    print (word[2:].title()+'-' + word[:2] + 'ay')
elif word[:1] in vocals:
    print(word.title() + '-' +'ay')
else:
    print(word[1:].title() + '-' + word[1]+'ay')

Kommentare:

Nachbar

Punkte: 2820

30 Aufgaben
67 Lösungen
44 Kommentare

#1
09.12.2016 um 21:33 Uhr
Hi,

ich weiß nicht ob du dir dessen bewusst bist aber von diesen Beispielen:

loser → oser-lay
button → utton-bay
star → ar-stay
three → ee-thray
question → estion-quay
happy → appy-hay
Pig Latin → Ig-pay Atin-lay

wandelt dein Programm lediglich das Wort "star" richtig um.

Grüße vom Nachbar
post_arrow
382 0

ZRX88

Punkte: 2770

50 Aufgaben
45 Lösungen
10 Kommentare

#2
11.12.2016 um 21:09 Uhr
Hi!
Tatsächlich war es mir nicht so recht bewusst, dass der code doch sehr fehlerhaft ist.

Ich habe nochmal nachgerüstet und außer dem stillen "h" und der Groß - und Kleinschreibung alles behoben. ( Das Letztere ist ja acuh nicht erklärt. )

Quellcode ausblenden Python-Code
""" pig latin """
# https://de.wikipedia.org/wiki/Konsonantencluster
Konsonaten_cluser = 'qu, bl, br, ch, chl, chr, dr, dw,fl, fr, gl, gn, gr,kh, khm, kl, kn, kr, pf, pfl, pfr, pl, pn, pr, ps, ph, phl, phr, rh, sk, skl, skr, sl, sp, sph, spl, spr, st, str, sz, sch, schl, schm, schn, schr, schw, th, thr, tr, vl ,wr, zw'.split(', ')
vocals = 'a, e, u, o, i, h'.split(', ')

words = 'loser, button, star, three, question, happy, Pig, Latin, eagle, honour, america'.lower().split(', ')

def check_konsonaten(word):
    for length in range(4,1,-1):
        for item in Konsonaten_cluser:
            if item == word[:len(item)] and len(item) == length:
                return item

for word in words:
    kons = check_konsonaten(word)
    if word[:1] in vocals:
        print(word.title() + '-' +'ay')
    elif kons:
        print (word[len(kons):].title()+'-' + kons + 'ay')
    else:
        print(word[1:].title() + '-' + word[0]+'ay')
post_arrow
388 0

Nachbar

Punkte: 2820

30 Aufgaben
67 Lösungen
44 Kommentare

#3
12.12.2016 um 16:37 Uhr
Jo Glückwunsch, schön kurz dein Code.

Grüße vom
Nachbar
post_arrow
389 0
Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben