- Kursmaterial
- Planering
- Arbete
- Kunskapsdokument
- Andra kurser
- Om Kursolle
3. Moment03 - Selektioner och operatorer
Info
Till detta moment finns en sida med lösningsförslag och videoklipp.
För de elever som vill utmanas ytterligare med fler och/eller svårare uppgifter hittar dessa här.
Avsnitt flyttas
Obs: Detta avsnitt hör egentligen hemma i Moment02 (efter 2.7 Input) och flyttas dit senare.
2.8 Stränghantering i Python
Att kunna hantera strängar är en grundläggande färdighet inom programmering. Strängar används för att representera text, och i många program behöver vi bearbeta och analysera textdata. I detta avsnitt kommer vi att utforska varför stränghantering är viktigt, lära oss några viktiga funktioner i Python för att manipulera strängar, och avsluta med en uppgift där du får tillämpa dessa kunskaper.
2.8.1 Varför är stränghantering viktigt?
Interaktion med användaren: Många program tar emot inmatning från användaren i form av text. För att förstå och reagera på denna inmatning behöver vi kunna bearbeta strängar.
Datahantering: Mycket data lagras och överförs som text. För att extrahera information från denna data behöver vi kunna söka, dela upp och modifiera strängar.
Felhantering: Användare kan mata in oväntade eller felaktiga data. Genom att hantera strängar effektivt kan vi validera och sanera inmatningar för att förhindra fel i programmet.
2.8.2 Viktiga strängfunktioner i Python
Här är några grundläggande strängfunktioner och metoder i Python som är användbara att känna till:
Längd på en sträng med
len()
: Returnerar antalet tecken i strängen.Kodexempel:
len()
text = "Hej världen" print(len(text)) # Output: 11
Åtkomst till tecken med index:
En sträng kan ses som en sekvens av tecken där varje tecken har en position, kallad index. Indexeringen börjar från 0 för det första tecknet, 1 för det andra, och så vidare. Man kan också använda negativa index för att räkna baklänges från slutet av strängen (-1 för sista tecknet, -2 för näst sista, osv).
Kodexempel: index
text = "Python" print(text[0]) # Output: P (första tecknet) print(text[1]) # Output: y (andra tecknet) print(text[-1]) # Output: n (sista tecknet) print(text[-2]) # Output: o (näst sista tecknet)
Konkatenering (sammanfogning) av strängar:
Kodexempel: konkatenering
text1 = "Hej" text2 = "världen" sammanfogad = text1 + " " + text2 print(sammanfogad) # Output: Hej världen
Ändra mellan versaler och gemener med
str.lower()
,str.upper()
,str.capitalize()
,str.title()
:str.lower()
: Konverterar alla bokstäver till små bokstäver.str.upper()
: Konverterar alla bokstäver till stora bokstäver.str.capitalize()
: Gör första bokstaven stor och resten små.str.title()
: Gör första bokstaven i varje ord stor och resten små.
Kodexempel: versaler och gemener
text = "heJ vÄrLdEn" print(text.lower()) # Output: hej världen print(text.upper()) # Output: HEJ VÄRLDEN print(text.capitalize()) # Output: Hej världen print(text.title()) # Output: Hej Världen
str.strip()
: Tar bort inledande och avslutande blanksteg.Kodexempel:
strip()
text = " hej " print(text.strip()) # Output: "hej" print(text.lstrip()) # Output: "hej ", tar bort på vänster sida print(text.rstrip()) # Output: " hej", tar bort på höger sida
str.replace(old, new)
: Ersätter en del av strängen med något annat.Kodexempel:
replace()
text = "Jag älskar programmering" print(text.replace("älskar", "gillar")) # Output: Jag gillar programmering
str.find(substring)
: Söker efter en delsträng och returnerar dess startposition (index), eller -1 om den inte hittas.Kodexempel:
find()
text = "Hej världen" position = text.find("världen") print(position) # Output: 4
Nu när du har läst om några av de vanligaste strängmetoderna i Python är det dags att testa dem i praktiken.
Genom att experimentera med korta program blir det lättare att förstå hur metoder som len()
,
.lower()
och .strip()
fungerar och när de är användbara.
Börja med att köra exemplen nedan och observera hur resultatet förändras beroende på vad du skriver in.
Övning 8
Kopiera och kör programmet nedan. Testa olika inmatningar och skriv egna kommentarer som förklarar vad som händer.
Grundkod: Övning 8
text = input("Skriv en kort mening: ") print("Gemener:", text.lower()) print("Versaler:", text.upper()) print("Stor första bokstav:", text.capitalize()) print("Antal tecken:", len(text)) print("Text utan mellanslag i början/slutet:", text.strip())
- Kör programmet och skriv olika meningar.
- Prova med extra mellanslag och blandade stora/små bokstäver.
- Lägg till kommentarer i koden som beskriver vad varje metod gör.
2.8.3 Exempel: Bearbeta en mening
Låt oss använda några av dessa funktioner i ett sammanhang. Antag att vi har följande sträng:
Kodexempel: Mening att bearbeta
mening = " Hej och välkommen till programmeringskursen! "
Vi vill bearbeta denna sträng på flera sätt:
Ta bort extra blanksteg:
Kodexempel:
strip()
mening = mening.strip() print(mening) # Output: Hej och välkommen till programmeringskursen!
Konvertera till versaler:
Kodexempel:
upper()
versaler = mening.upper() print(versaler) # Output: HEJ OCH VÄLKOMMEN TILL PROGRAMMERINGSKURSEN!
Ersätta ord:
Kodexempel:
replace()
ny_mening = mening.replace("programmeringskursen", "Python-kursen") print(ny_mening) # Output: Hej och välkommen till Python-kursen!
Åtkomst till enskilda tecken:
Kodexempel: använda index
första_tecken = mening[0] sista_tecken = mening[-1] print(f"Första tecknet: '{första_tecken}', Sista tecknet: '{sista_tecken}'") # Output: Första tecknet: 'H', Sista tecknet: '!'
Övning 9
Bygg vidare på övning 8 eller skapa en helt ny lösning. I denna övning tränar du på att söka och ersätta text i en sträng.
Grundkod: Övning 9
text = "Jag älskar programmering i Python" # Hitta var ett ord börjar i texten print("Position för ordet 'Python':", text.find("Python")) # Ersätt ett ord med ett annat print("Text efter ersättning:", text.replace("Python", "Java"))
- Testa att söka efter ord som inte finns i texten. Vad returnerar
find()
då? - Testa att ersätta ordet älskar med något annat.
- Skriv en egen mening och prova samma metoder.
Tips: Lägg till egna utskrifter med f-string för att visa resultatet på ett snyggt sätt.
Nu har du fått testa flera vanliga strängmetoder och sett hur de kan användas för att analysera och ändra text. I nästa uppgift ska du ta det ett steg vidare och kombinera flera av dessa metoder i ett och samma program. Du kommer att arbeta med inmatad text, bearbeta den och presentera resultatet på ett tydligt sätt.
Uppgift: m02u05
Grunduppgift:
Skriv ett program som:
- Tar emot en mening från användaren.
- Tar bort eventuella inledande och avslutande blanksteg.
- Räknar antalet tecken i meningen (efter att blanksteg tagits bort).
- Skriver ut meningen med första bokstaven i varje ord versal (stor bokstav).
Exempel på körning:
Exempel på körning
Ange en mening: jag lär mig att programmera i python! Antal tecken i meningen: 37 Meningen med stor bokstav i varje ord: Jag Lär Mig Att Programmera I Python!
Tips för uppgiften:
- Använd
input()
för att ta emot inmatning från användaren. - Använd
str.lower()
för att jämföra strängar oavsett om de är skrivna med stora eller små bokstäver. - Funktionen
len()
kan användas för att räkna antalet tecken. - Använd
str.title()
för att göra första bokstaven i varje ord stor.
Fördjupning
Utöka programmet så att det även:
- Frågar användaren efter ett ord att ersätta och vilket nytt ord det ska ersättas med.
- Ersätter alla förekomster av det angivna ordet med det nya ordet i meningen.
- Skriver ut den nya meningen.
Exempel på körning:
Kodexempel: Exempel på körning
Ange en mening: Jag älskar att programmera. Att programmera är kul! Ange ordet du vill ersätta: programmera Ange det nya ordet: koda Den nya meningen är: Jag älskar att koda. Att koda är kul!
2.8.5 Sammanfattning
Stränghantering är en viktig del av programmering som låter oss bearbeta och analysera textdata. Genom att behärska grundläggande strängfunktioner kan vi skapa mer interaktiva och robusta program. Uppgiften ovan ger dig möjlighet att öva på dessa färdigheter i praktiken.
I alla programmeringsspråk så är selektioner ett centralt begrepp. Selektioner eller villkorssatser brukar vi kalla det på svenska, Control Structures heter det på engelska. Oavsett vad det kallas så handlar det om val och att tala om för programmet att göra olika saker beroende på ett specifikt villkor.
I detta moment kommer vi lära oss att förstå strukturen kring villkorssatser men också lära oss att skriva de villkor som styr dem.