Logga in för att kunna spara vad du har gjort.
<< Föregående
Hem
Nästa >>
OBS! Fönstret är för smalt för att använda pythonlabbet.se. Använd en enhet med tangentbord!

Referens

Klicka på en funktion för att läsa mer.
Grunder del 1
Syntax
Kort beskrivning
break
break avbryter kod som repeteras
continue
continue avbryter en repetition och påbörjar nästa
elif
elif är en kombination av else och if
else
else kan användas sist i en if-sats
float()
Konverterar till typen float (decimaltal)
if
if styr koden att göra olika beroende på ett villkor
input()
Tar emot indata från användaren
int()
Konverterar till typen int (heltal)
randint()
Konverterar till typen randint (heltal)
round()
Avrundar ett tal
str()
Konverterar till typen sträng
while
while används för att repetera kod
Grunder del 2
Syntax
Kort beskrivning
abs
Absolutbeloppet
append
Lägger till ett element till en lista
def
Definierar en funktion
for
for används för att repetera kod
len
Ger antal element i ett objekt
max
Returnerar det största elementet
min
Returnerar det minsta elementet
pop
Tar bort ett element från en lista
return
Returnerar data från en funktion
sum
Summerar elementen i ett objekt

Mer om listor

I det här avsnittet kommer du att lära dig att

Dellistor eller del av en sträng

I Python är det enkelt att skapa en dellista av en lista eller en delsträng av en sträng. På engelska heter det slicing. Syntaxen som används är variabel[start:slut] där start är det index som delen börjar på och slut är där delen slutar. Indexet slut är inte inkluderat.

Exempel

Några exempel på hur syntaxen kan användas för att skapa en delsträng.

idag = '2024-09-11'
år = idag[0:4] #index 0 till och med 3
månad = idag[5:7] #index 5 och 6
dag = idag[8:10] #index 8 och 9

Exempel

Dellistor skapas på samma sätt som delsträngar. Tänk på att första elementet i listan har index 0.

# listan anger tider i os-finalen i Tokyo på 100 meter herrar.
tider = ['9.80', '9.84', '9.89', '9.93', '9.95', '9.95', 'DNF', 'DQ']

tid_1_3 = tider[0:3] # tre bäst tiderna i en dellista
tid_4_6 = tider[3:6] # tiderna på plats 4 till 6

Logga in eller skapa konto för att spara dina framsteg och din kod.

Vad gör koden?

Läs koden nedan och försök lista ut vad programmet skriver ut. Kör programmet efter du svarat och se om du fick rätt.

-- Programmets utskrifter --

Fråga: Vad kommer programmet ovan att skriva ut?

nty
nty P
ty P
ty Py

Fler sätt att dela på

I syntaxen variabel[start:slut] går att det utelämna start eller slut. Ja, det går faktiskt att utelämna båda två för att få med allt. Om start utelämnas så tas allt med från början upp till slut. Om slut utelämnas tas allt med från start till slutet.

Exempel

Exempel på slicing där startindex och slutindex utelämnas.

s = 'Monty Python'

# Ta med tecken från början upp till index 5
början = s[:5]

# Ta med tecken från index 6 till slutet
slutet = s[6:]
  

Kommer du ihåg att negativa index kan använda i listor och strängar? Negativa index innebär att vi räknar positionen bakifrån, -1 betyder det sista elementet. Det går bra att använda negativa index när vi skapar delsträngar och dellistor också.

Exempel

Skapa en dellista med negativa index.

s = 'Monty Python'
delsträng = s[1:-1] #ta inte med första och sista tecknet
  

Logga in eller skapa konto för att spara dina framsteg och din kod.

Vad gör koden?

Läs koden nedan och försök lista ut vad programmet skriver ut. Kör programmet efter du svarat och se om du fick rätt.

-- Programmets utskrifter --

Fråga: Vad kommer programmet ovan att skriva ut?

Monty Pyth Mo
Monty Pyth M
Monty Pytho Mo
Monty Pytho M

Listbyggare

Listbyggare används för att skapa listor genom att bara skriva en rad kod. Det engelska namnet för listbyggare är list comprehension och är troligtvis det du kommer stöta på mest. Listbyggare kombinerar syntaxen för att skapa en lista [] med syntaxen för en for-sats. Senare ska vi se att det går att använda en if-sats också, men vi börjar med enklare exempel.

Exempel

Skapar en lista med fem identiska element.

lista = [0 for i in range(5)]

I exemplet ovan användes aldrig räknaren i. Vi ser vad som händer om vi använder i istället för noll.

Exempel

Fler exempel på listbyggare.

lista_1 = [i for i in range(5)] # [0,1,2,3,4]

lista_2 = [i*5 for i in range(5)] # [0,5,10,15,20]
  

Nu ska vi se hur vi kan använda en if-sats inuti en listbyggare. Det kan till exempel användas för att filtrera ut element i en lista.

Exempel

Listbyggare med if-sats.

namn = ['Maria', 'Anna', 'Margareta', 'Elisabeth', 'Eva', 'Kristina']

#skapa en ny lista med namn som slutar på a
slutar_på_a = [n for n in namn if n[-1] == 'a']

#lista med namn som är max fem tecken långa
korta_namn = [n for n in namn if len(n) <= 5]

Listbyggare kan vara lite luriga att förstå sig på, speciellt om du kan något annat programmeringsspråk där det inte finns. Om du har en listbyggare [x for x in lista if x < 10] så kan du tänka på det så här: Lägg in elementet x i listan för alla element x i lista där x är mindre än 10. Vi skapar alltså en ny lista från lista med alla element som är mindre än 10.

Listbyggare är inte nödvändigt att kunna eftersom det alltid går att göra samma sak med en vanlig for-sats eller while-sats. Men för vana Pythonprogrammare som ofta arbetar med listor är det en trevlig funktion.

Logga in eller skapa konto för att spara dina framsteg och din kod.

Ändra i koden

Ändra i koden så att listbyggaren filtrerar bort alla negativa tal.

-- Programmets utskrifter --

En lista av listor

Tänk dig en vanlig lista och tänk sedan att varje element i den listan är en ny lista. Det är en lista av listor eller 2D-lista.

En 2D-lista passar speciellt bra för modeller av något i två dimensioner. En vanlig bild är ett bra exempel. För att iterera igenom alla elementen i en 2D-lista brukar en nästlad for-sats användas.

Exempel

Skapa en 2D-lista med två rader och tre kolumner. De två elementen i listan representerar rader. De elementen är i sin tur också listor.

lista_2d = [ [1, 2, 3], [4, 5, 6] ]

Exempel

Variabeln bild är en 2D-lista som representerar en enkel bild. Varje pixel är antingen # eller ett blanksteg. Bilden har sju pixlar på bredden och sex pixlar på höjden. 2D-listan har alltså sex rader och varje rad innehåller sju kolumner. Vi skriver ut bilden med en nästlad for-sats.

En riktig bild fungerar på samma sätt. Elementen brukar dock vara ett tal som beskriver färgen på den pixeln.

bild = [
    [' ', '#', '#', ' ', '#', '#', ' '],
    ['#', ' ', ' ', '#', ' ', ' ', '#'],
    ['#', ' ', ' ', ' ', ' ', ' ', '#'],
    [' ', '#', ' ', ' ', ' ', '#', ' '],
    [' ', ' ', '#', ' ', '#', ' ', ' '],
    [' ', ' ', ' ', '#', ' ', ' ', ' ']
]

for rad in bild: #
    for kolumn in rad:
        print(kolumn, end='')
    print() #ny rad i utskriften för varje utskriven rad i bilden  
  

Logga in eller skapa konto för att spara dina framsteg och din kod.

Skapa

Summera alla tal i variabeln bild med hjälp av en nästlad loop och skriv ut summan.

-- Programmets utskrifter --
Status
Du har inte gjort klart någon uppgift än (0 st).