Vad vet vi sedan innan?
Tidigare lektioner som handlar om textsträngar och siffersträngar inom Programmering på KlassKlur går igenom flera olika saker, bland annat att:
- Textsträngar kan konverteras till siffersträngar med en funktion som heter int(). Tvärtom kan göras med textsträngar. Då används kommandot str().
- Textsträngar används bland annat när man printar ut saker med "print".
- Strängar går att kombineras, sparas i en variabel m.m.
- Du kan skapa listor som innehåller strängar. Listor sparas i en eller flera variabler.
Vad ska vi lära oss i denna lektion?
I denna lektion ska vi utöka din kunskap om textsträngar genom att bland annat berätta och gå igenom kommandon som kan redigera b.la. textsträngar i variabler. Vi kommer att lära oss om hur du kan lägga till saker i slutet av en lista och lära oss mer om olika kommandon du kan använda för både textsträngar och listor.
Textsträngar:
Textsträngar är ju helt enkelt text som används när du programmerar med Python. Visste du att du kan redigera och fixa med textsträngar ännu mer än bara spara dem i en variabel, till exempel? Vi kommer att utgå från en variabel som vi döpt till "variabel". Vi sparar en kort mening i den variabeln. Här är koden för att göra detta:
Denna kod skapar en variabel med en mening i:
Nu kan vi konvertera textsträngen med hjälp av olika kommandon. Dem fungerar på samma sätt, så här kommer en lista över dessa kommandon:
upper() - Konverterar allt i textsträngen till stora bokstäver (t.ex. "DETTA ÄR EN MENING").
lower() - Konverterar allt i textsträngen till små bokstäver (t.ex. "detta är en mening").
capitalize() - Gör så att den första bokstaven i textsträngen blir stor (t.ex. "Detta är en mening").
replace("ord","ord 2") - Ersätter alla ord den kan hitta som innehåller texten "ord" (byt ut detta mot din egen text) med texten "ord 2" (byt ut mot din egen text).
upper() - Konverterar allt i textsträngen till stora bokstäver (t.ex. "DETTA ÄR EN MENING").
lower() - Konverterar allt i textsträngen till små bokstäver (t.ex. "detta är en mening").
capitalize() - Gör så att den första bokstaven i textsträngen blir stor (t.ex. "Detta är en mening").
replace("ord","ord 2") - Ersätter alla ord den kan hitta som innehåller texten "ord" (byt ut detta mot din egen text) med texten "ord 2" (byt ut mot din egen text).
Vi kan prova att använda oss av två av dessa kommandon genom att köra koden här nedanför:
Denna kod konverterar en textsträng på två sätt:
Då får vi detta resultat:
Men vi kan också konvertera en textsträng i flera olika steg. Som du ser här ovanför skapas det två konverteringar av textsträngen. Om vi till exempel vill ändra en sträng med bara små bokstäver till en sträng med stor bokstav i början och sedan ta bort alla mellanrum i den så kan vi följa denna "arbetsgång":
- Skapa en variabel med texten "h e jsan" i.
- Ta bort alla mellanrum i ännu en ny variabel.
- Skapa en ny variabel som sparar variabel med texten "h e jsan" utan mellanrum konverterad till en stor bokstav i början.
- Skriva ut resultatet.
Försök att skriva denna kod själv. Kolla på listan med kommandon här ovanför för att få en ledtråd om hur du kan göra. Koden skulle kunna se ut så här:
Denna kod omvandlar textsträngen "h e jsan" till "Hejsan":
Som du ser så är det en ganska enkel kod som behövs. Här är en bild som förklarar ungefär vad som händer:
Man kan alltså konvertera en textsträng fler gånger för att få ett bra resultat. Nu har du lärt dig lite mer om olika saker du kan göra med textsträngar inom Python.
Vad kan du göra med detta?
Jo, vi kan skapa ett enkelt program för att redigera textsträngar, på detta sätt:
Denna kod skapar en enkel textsträngs-redigerare i Python:
Detta är en lång kod, men försök att förstå den så bra du kan. Om du läser texten som finns efter "#"-symbolerna förstår du förhoppningsvis och förmodligen lite mer om hur programmet här ovan fungerar. Prova att bygga vidare lite på programmet eller försöka förstå vad det gör innan du går vidare med att lära dig mer om text- och nummersträngar inom Programmering.
Använd format() istället för massa plustecken
Du vet sedan tidigare att man kan sammanfoga text och variabler med plustecken. Men, om du har många olika variabler, kan det lätt bli plottrigt och svårt att hålla reda på, som i exemplet nedan:
Klicka här när du vill redigera.
Det går att skriva ihop detta så att du får en hel textsträng genom att lägga till en funktion som kallas format() på slutet av textsträngen. Format() byter ut "{}" i en angiven sträng mot de variabler som matas in i funktionen. Såhär skulle det se ut:
Klicka här när du vill redigera.
Som du ser så blir detta mycket renare att arbeta med och enklare att hålla koll på. Det första värdet som matas in i funktionen kommer också bytas ut mot den första "{}" i strängen. Om du vill kan du även organisera det ännu mer och ge värdena i strängen namn:
Klicka här när du vill redigera.
För att få detta att fungera kan du sätta värdena du vill sätta in i strängen i vilken ordning du vill, så länge du matchar variabelnamnet du skrivit in i strängen med det du skrivit in i funktionen, som vi gjort ovan.
Det finns även en hel del andra saker du kan göra med format() - en bra resurs för att lära dig mer (på Engelska) är denna sida.
Det finns även en hel del andra saker du kan göra med format() - en bra resurs för att lära dig mer (på Engelska) är denna sida.
Arbeta mer med listor:
Det finns flera smarta kommandon när du arbetar med listor inom Python. Skapa en ny Python-fil och skriv denna kod som en grund:
Denna kod skapar en enkel Python-lista:
Låt oss lägga till något i slutet av listan. Vi skulle kunna skriva denna kod:
Denna kod lägger till information i slutet av en lista:
Som du ser så går detta att göra med bland annat funktionen "len()", men det finns en inbyggd och enkel funktion som heter "lista.append()". Byt ut "lista" mot variabelns namn och skriv någonting innanför parenteserna som du vill lägga till is lutet av listan. Här är en exempelkod:
Här är en exempelkod med funktionen "lista.append()":
Jämför du de två olika koderna ovan så ser du att den som använder funktionen "lista.append()" är betydligt kortare och därmed gör det enklare att lägga till nya saker i slutet av en lista. Läs vidare så kommer du att lära dig ännu mer om funktioner som du kan använda i dina listor.
Börja bakifrån i en lista
När du arbetar med listor kan det vara bra att kunna små, hjälpsamma funktioner. Låt oss säga att vi vill ha det näst sista som står i listan. Istället för att krångla med len() osv. så kan vi istället bara skriva ett negativt nummer där vi definierar vart i listan programmet ska leta. Det kommer att göra så att Python istället börjar räkna från höger. Här är ett exempel:
Denna kod börjar bakifrån i en lista:
Du kommer då att få detta resultat:
Tittar du i koden är det också det näst sista i listan som skrivs ut, vilket betyder att det fungerar:
Du kan alltså börja bakifrån i en lista enklare och med mindre kod! Det finns många mer små tips och tricks att lära sig kring detta, men nu kan du göra uppgifterna om du vill och sedan arbeta med dina egna projekt. Det viktigaste är ju inte att du gör alla uppgifter, det viktigaste är att du förstår någonting!
Uppgifter till lektionen:
1. Bygg vidare på koden till textredigeraren som finns här ovanför som KlassKlur gjort grunden till.
2. Gör ett program som kan skapa listor och sedan lägga till någonting i slutet på en lista.
3. Kan du lägga till och förbättra ett tidigare spel/program som du har gjort? Skapa en ny Python fil, klistra in koden från den gamla filen och gör ändringarna i den nya filen så att den gamla koden fortfarande finns kvar!
4. Bygg vidare på ditt program som kan skapa listor! Lägg till funktioner såsom att man kan konvertera listan till str(), se längden på ens lista osv.
5. Kan du göra en kod där användaren kan skriva en jättelång lista och sedan välja en plats (räknat bakifrån eller framifrån) i listan som Python sedan skriver ut?
2. Gör ett program som kan skapa listor och sedan lägga till någonting i slutet på en lista.
3. Kan du lägga till och förbättra ett tidigare spel/program som du har gjort? Skapa en ny Python fil, klistra in koden från den gamla filen och gör ändringarna i den nya filen så att den gamla koden fortfarande finns kvar!
4. Bygg vidare på ditt program som kan skapa listor! Lägg till funktioner såsom att man kan konvertera listan till str(), se längden på ens lista osv.
5. Kan du göra en kod där användaren kan skriva en jättelång lista och sedan välja en plats (räknat bakifrån eller framifrån) i listan som Python sedan skriver ut?
Uppdaterad 2020-05-09 med info om format()-funktionen.