ÖVNINGSUPPGIFT

Uppgift 2 - Antal vokaler

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


Nyckelord: funktioner

I denna uppgift ska vi skapa en funktion som avgör om ett tecken är en vokal eller ej. Vi ska även återanvända funktioner för att beräkna hur många vokaler det finns i en textsträng.

A: Hitta vokal

Skapa en funktion is_vowel() som tar in ett tecken och avgör om tecknet är en vokal eller ej. Funktionen ska kunna hantera både små och stora bokstäver (gemener och versaler).

B: Räkna vokaler

Skapa en ny funktion count_vowels() som använder sig av is_vowel() för att beräkna antal vokaler i en textsträng. Funktionen ska ta in en textsträng som parameter och returnera antal vokaler i textsträngen.

C: Testa dina funktioner

Skapa ett program som använder sig utav count_vowels på följande textsträng:

Jag gillar att programmera i Python!

Programmet ska skriva ut textsträngen samt hur många vokaler textsträngen innehåller.

Ledtråd

Skapa en funktion i Python med följande syntax:

def is_vowel(ch):
    # Ersätt pass med din lösning.
    pass

Inom parentesen anger man vilka inputparametrar man vill ha.

Svar

Först skapar vi funktionen is_vowel(). Vi anger att funktionen ska ta in en inparameter ch som är ett tecken (character). Vi visar här två olika sätt att skriva funktionen på:

Första sättet är helt enkelt att göra en logisk jämförelse med alla möjliga vokaler. Om tecknet är en vokal så returneras True, annars False.

def is_vowel(ch):
    if ch == 'a' or \
       ch == 'A' or \
       ch == 'o' or \
       ch == 'O' or \
       ch == 'u' or \
       ch == 'U' or \
       ch == 'å' or \
       ch == 'Å' or \
       ch =='e' or \
       ch =='E' or \
       ch == 'i' or \
       ch == 'I' or \
       ch =='y' or \
       ch =='Y' or \
       ch =='ä' or \
       ch =='Ä' or \
       ch =='ö' or \
       ch == 'Ö':
        return True
    return False

Det andra sättet är att lägga alla vokaler i en lista och kolla om tecknet finns i listan. Vi har ännu inte gått igenom listor i Python men vi visar ändå här hur man enkelt kan gruppera alla vokaler i en lista.

def is_vowel(ch):
    if ch in ['a', 'A', 'o', 'O', 'u', 'U', 'å', 'Å', 'e', 'E', 'i', 'I', 'y', 'Y', 'ä', 'Ä', 'ö', 'Ö']:
        return True
    return False

Vi använder sedan denna metod i nästa funktion count_vowels(). Funktionen tar in en textsträng str och loopar igenom varje tecken i textsträngen. Om tecknet är en vokal så ökar man räknaren med 1. Funktionen avslutas med att antal vokaler returneras.

def count_vowels(str):
    i = 0
    for ch in str:
        if is_vowel(ch):
            i = i + 1
    return i

Avslutningsvis kan vi köra hela programmet med:

str = "Jag gillar att programmera i Python!"
nmbr_of_vowels = count_vowels(str)

print(f"Textsträngen '{str}' innehåller {nmbr_of_vowels} vokaler.")

Textsträngen 'Jag gillar att programmera i Python!' innehåller 11 vokaler.