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.