kmom03
Detta seminarium tar upp följande områden: funktioner
Förberedelser
Section titled “Förberedelser”Läs Om seminarier.
- Beskriv med egna ord vad en funktion (inom programmering) är.
- Vad finns det för fördelar med att använda funktioner.
- Vad förutom ett namn behöver ingå i en funktion?
- Ge exempel på minst två funktioner som du/ni använt hittills och som du/ni inte definierat själv.
- Vilken är regeln, dvs syntaxen, för hur en funktion måste skrivas i Python?
- Vad gäller för namngivning av funktioner i Python?
- Vad händer om man ger flera funktioner samma namn i Python?
- Vad menas med ett funktionsanrop och vad sker vid ett sådant?
- Förklara skillnaden på parameter och argument.
- Vad menas med default-argument och hur skrivs sådana i Python?
- Om en funktion har de 3 parametrarna param1, param2 och param3 (i denna ordning)? Hur många olika möjligheter finns det för att ge defaultargument? Ge exempel på parameterlistor för varje möjlighet.
- Vad är en lokal variabel i sammanhanget funktion?
- Kan flera funktioner ha samma namn på sina lokala variabler?
- Kan en funktion anropa en annan funktion?
Hur kod funkar
Section titled “Hur kod funkar”-
Beskriv skillnaden på func01 och func02 nedan och visa hur respektive funktion anropas med målet att texten “I’m a function” ska skrivas ut.
def func01():print("I'm a function")def func02():return "I'm a function" -
Vad är det som är fel i func03() resp func04() nedan?
def func03():return "I'm a function"str = "Bye"print(str)def func04(what):print("I'm a function")print(what) -
Utgå från kod-avsnittet
def func05(start, end = 10):total = 0for i in range(start, end):total += ireturn totaldef func06():first = func05(10, 30)print(f"{first} and {func05(4)}")Ange vad som är:
- anrop
- lokal variabel
- parameter
- argument
- defaultargument
Tolka kod
Section titled “ Tolka kod”-
Anta kod-avsnittet nedan
def func07(value):value += 4nr = 10func07(nr)print(nr)Vad blir det för utskrift?
-
Anta kod-avsnittet nedan
def func08(phrase):phrase += "!"return phrasestring = "Python is fun"print(func08(string))print(string)Vad blir det för utskrift?
-
Anta kod-avsnittet nedan
def func09(param):result = "Number"if type(param) == str:result = "Text"elif type(param) == bool:result = "Boolean"return resultresult = func09(44)print(result)result = func09("True")print(result)Vad blir det för utskrift?
Praktisk uppgift
Section titled “ Praktisk uppgift”Börja med att planera er lösning och försök identifiera delproblem som kan testas tidigt. Använd gärna pseudokod för att formulera lösningar för de delproblem som identifierats och fundera över om det finns alternativ lösningarna. Vilka fördelar och/eller nackdelar kan de ha i så fall?
-
Skriv funktioner enligt
- average som tar emot tre tal, beräknar och returnerar medelvärdet av dessa.
- nr_of_100_bills som tar emot ett heltal motsvarande en summa pengar och returnerar antalet 100-lappar denna kan växlas till. Ex-vis ger argumentet 765 returen 7
- all_odd_numbers som tar emot tal som representerar ett startvärde respektive ett slutvärde och som returnerar en sträng innehållande alla udda heltal mellan start- och slutvärdet. De udda talen ska vara separerade med komma. Exempelvis resulterar startvärdet 2 och slutvärdet 11 i att strängen “3, 5, 7, 9, 11, ” returneras.
- is_leap_year som tar emot ett årtal och returnerar sant eller falskt beroende på om årtalen motsvarar ett skottår eller ej. Ett skottår är årtal som är jämnt delbara med 400 eller jämnt delbart med 4 men inte med 100. Exempel på skottår är 1996, 2000, 2024. Exempel på år som inte är skottår är 1900 och 2023.
-
Gör en funktion namngiven menu som presenterar menyn
- Beräkna medelvärdet av 3 heltal
- Beräkna antalet 100-lappar för en penga-summa
- Presentera alla udda heltal inom ett intervall
- Avgör om ett år är ett skottår eller ej.
- Avsluta
och låter användaren mata in sitt val, vilket returneras.
-
Använd alla funktioner från uppgift 1. och 2. och gör ett program som presenterar menyn (från uppgift 2) och låter användaren mata in sitt val vilket hanteras av funktioner från uppgift 1. Användaren ska kunna göra nya val tills dess att hen väljer menyval 5.
-
Skapa en funktion som tar emot två inputs från användaren. Den första inputen ska vara en text. Den andra inputen ska innehålla tecken som ska plockas bort från första strängen. T.ex.
"python is fun fun fun"
,"on"
. Då ska ni skapa en ny sträng som blir"pyth is fu fu fu"
.