Extra¶
Potjeslatijn¶
Opdracht: Potjeslatijn
Stap 1: piglet_latin(s)¶
def piglet_latin(s):
"""Vertaalt het woord s naar potjeslatijn, met hoogstens één beginmedeklinker."""
if s == "":
return ""
elif s[0] in "aeiou":
return s + "hee"
else:
return s[1:] + s[0] + "ee"
assert piglet_latin("") == ""
assert piglet_latin("aap") == "aaphee"
assert piglet_latin("noot") == "ootnee"
assert piglet_latin("straat") == "traatsee"
Stap 2: initial_consonants(s)¶
def initial_consonants(s):
"""Geeft de medeklinkers waarmee s begint."""
if s == "" or s[0] in "aeiou":
return ""
else:
return s[0] + initial_consonants(s[1:])
assert initial_consonants("straat") == "str"
assert initial_consonants("noot") == "n"
assert initial_consonants("aap") == ""
assert initial_consonants("") == ""
Stap 3: pig_latin(s)¶
De y gevolgd door een medeklinker telt als klinker; die tak staat daarom vóór
de aanroep van initial_consonants. Een y gevolgd door een klinker is voor
initial_consonants gewoon een medeklinker.
def pig_latin(s):
"""Vertaalt het woord s naar potjeslatijn."""
if s == "":
return ""
elif s[0] in "aeiou":
return s + "hee"
elif s[0] == "y" and len(s) > 1 and s[1] not in "aeiou":
return s + "hee"
else:
start = initial_consonants(s)
return s[len(start) :] + start + "ee"
assert pig_latin("") == ""
assert pig_latin("aap") == "aaphee"
assert pig_latin("noot") == "ootnee"
assert pig_latin("straat") == "aatstree"
assert pig_latin("ypsilon") == "ypsilonhee"
assert pig_latin("yoghurt") == "oghurtyee"