ÖVNINGSUPPGIFT

Uppgift 5 - Rövarspråket

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: funktioner

Programmera Rövarspråket i Python

Vi ska nu programmera en riktig klassiker - rövarspråket. I rövarspråket lägger man till bokstaven o efter varje konsonant följt av samma konsonant igen. Vokalerna och mellanslag i rövarspråket är oförändrade.

Exempel:

programmera python
poprorogogroramommomerora popytothohonon

Skapa en funktion som givet en textsträng returnerar översättningen i rövarspråket. Funktionen ska anropa en annan funktion som undersöker om en bokstav är en vokal eller ej.

Du kan i denna uppgift utgå från alla alla bokstäver är gemener (små bokstäver).

Ledtråd

Skapa if-satser för att kolla om en given bokstav är en vokal (eller ett mellanslag).

Du kan enkelt gå igenom alla tecken i en textsträng med en for-loop, där ch (character) är varje tecken i textsträngen.

Exempel:

text_str = "Programmera"
for ch in text_str:
    print(ch)

skriver ut

P
r
o
g
r
a
m
m
e
r
a
Svar
def is_vowel(ch):
    return ch.lower() in "aeiouyåäö"

def rovarsprak(text_to_translate):
    translation = ""
    for ch in text_to_translate:
        if ch.isalpha() and not is_vowel(ch):
            translation += ch + "o" + ch
        else:
            translation += ch
    return translation

if __name__ == "__main__":
    print(rovarsprak("programmera python"))

Förklaring: 

Funktionen is_vowel undersöker om tecknet är en vokal. I översättningsfunktionen ändrar vi bara bokstäver som inte är vokaler, så mellanslag, siffror och skiljetecken lämnas kvar.

Funktionen rovarspraket tar en textsträng som input och returnerar en textsträng. Vi loopar igenom alla bokstäver i textsträngen med loopen:

for ch in text_to_translate:

For-loopen går igenom bokstav för bokstav i textsträngen. Variabeln ch (character) kommer alltså innehålla varje bokstav från textsträngen varje iteration.

Om bokstaven är en vokal (eller mellanslag) gör vi ingenting med bokstaven. Men om bokstaven är en konsonant lägger vi till samma konsonant, följt av ett o och samma konsonant igen. Avslutningsvis returnerar vi resultatet och skriver ut det i terminalfönstret.