Skip to content

kmom03 del 2

Detta seminarium tar upp följande områden: funktioner

  1. 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"
  2. 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)
  3. Utgå från kod-avsnittet

    def func05(start, end = 10):
    total = 0
    for i in range(start, end):
    total += i
    return total
    def func06():
    first = func05(10, 30)
    print(f"{first} and {func05(4)}")

    Ange vad som är:

    • anrop
    • lokal variabel
    • parameter
    • argument
    • defaultargument
  1. Anta kod-avsnittet nedan

    def func07(value):
    value += 4
    nr = 10
    func07(nr)
    print(nr)

    Vad blir det för utskrift?

  2. Anta kod-avsnittet nedan

    def func08(phrase):
    phrase += "!"
    return phrase
    string = "Python is fun"
    print(func08(string))
    print(string)

    Vad blir det för utskrift?

  3. Anta kod-avsnittet nedan

    def func09(param):
    result = "Number"
    if type(param) == str:
    result = "Text"
    elif type(param) == bool:
    result = "Boolean"
    return result
    result = func09(44)
    print(result)
    result = func09("True")
    print(result)

    Vad blir det för utskrift?

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?

  1. 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 heltal 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.
  2. Gör en funktion namngiven menu som presenterar menyn

    1. Beräkna medelvärdet av 3 heltal
    2. Beräkna antalet 100-lappar för en penga-summa
    3. Presentera alla udda heltal inom ett intervall
    4. Avgör om ett år är ett skottår eller ej.
    5. Avsluta

    och låter användaren mata in sitt val, vilket returneras.

  3. 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.

  4. Skapa en funktion som tar emot två strängar. Den första strängen ska vara en text. Den andra strängen ska innehålla alla 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". Den resulterande strängen ska returneras.