Osa 7

Flera funktionaliteter i Python

För att knyta ihop den här kursen, ska du ännu få en lista av nyttiga funktionaliteter som Python har att erbjuda.

If-satser på en rad

Följande satser ger samma resultat:

if x%2 == 0:
    print("jämn")
else:
    print("ojämn")
print("jämn" if x%2 == 0 else "ojämn")

I det senare exemplet har vi en if-sats i enradsformat: a if [villkor] else b. Värdet för uttrycket blir a då villkoret är sant och b i övriga fall. På engelska kallas detta ternary operator.

If-satser kan användas då man vill tilldela något värde baserat på ett villkor. Till exempel om du har variablerna x och y och vill antingen öka eller ändra på y:s värde baserat på x paritet (jämnt/udda tal), kan du använda en normal if-else-sats:

if x%2 == 0:
    y += 1
else:
    y = 0

Eller så kan du göra det hela med en rad kod:

y = y + 1 if x%2 == 0 else 0

Ett "tomt" block

Du minns kanske att block inte kan vara tomma i Python. Om du behöver ett block som inte gör någonting – till exempel då du testar någon annan funktionalitet – kan du använda pass-instruktionen. Du kan till exempel skapa en funktion som inte gör någonting:

def test():
    pass

Funktionen kommer att returnera direkt. Om pass-instruktionen lämnas bort, kommer koden att ge ett fel, eftersom block inte kan vara tomma.

def test():

Loopar med else-block

I Python kan loopar också ett else-block. Koden inom det här blocket körs då loopen avslutas normalt.

Till exempel här går vi igenom en lista med siffror. Om det finns ett jämnt tal i listan, kommer ett meddelande att skrivas ut och loopen avslutas. Om det inte finns några jämna tal, kommer loopen att avslutas vanligt, men ett annat meddelande skrivs ut:

lista = [3,5,2,8,1]
for x in lista:
    if x%2 == 0:
        print("hittade jämnt tal", x)
        break
else:
    print("hittade inte jämnt tal")

Ett mera traditionellt sätt att göra det här är att använda en hjälpvariabel som minns om en viss typ av element har hittats:

lista = [3,5,2,8,1]
hittades = False
for x in lista:
    if x%2 == 0:
        print("hittade jämnt tal", x)
        hittades = True
        break
if not hittades:
    print("hittade inte jämnt tal")

Att använda en for-else-sats sparar oss den tid som skulle krävas för att skapa en hjälpvariabel och logiken kring den.

Standardvärde för en parameter

I Python kan funktioners parametrar ha ett standardvärde. Det används då ett argument inte ges till en funktion då den anropas. Se följande exempel:

def tervehdi(nimi="Emilia"):
    print("Hej,", nimi)

tervehdi()
tervehdi("Elin")
tervehdi("Malin")
Exempelutskrift

Hej, Emilia Hej, Elin Hej, Malin

Obs! En tom sträng är fortfarande en sträng. Standardvärdet kommer inte att användas om en tom sträng ges som argument till en funktion.

Ändrande antal parametrar

Du kan också definiera att en funktion har ett ändrande antal parametrar, genom att lägga till en asterisk för parameternamnet. Alla argument som ges till funktionen lagras i en tuple som kan kommas åt genom den namngivna parametern.

Följande funktion räknar antalet argument som getts samt summan av dem:

def test(*lista):
    print("Du gav", len(lista), "argument")
    print("Deras summa är", sum(lista))

test(1, 2, 3, 4, 5)
Exempelutskrift

Du gav 5 argument Deras summa är 15

Loading

Vänligen svara på kursfeedbacksenkäten här nedan. Enkätens resultat hjälper oss att utveckla och förbättra den här kursen.

Loading...
:
Loading...

Log in to view the quiz

Du har nått slutet av den här delen!

Se dina poäng genom att klicka på cirkeln nere till höger av sidan.