Gå till innehållet

Använda text (Python)

Jobba med text (strängar) är vanligt i Python. Här lär du dig skriva ihop texter, läsa in från användaren och ändra text.

Mål för denna sida

  • Förstå vad en sträng är och hur man skriver dem
  • Kunna kombinera text med + eller f-strängar
  • Känna till vanliga strängmetoder

Text och strängar

I Python representeras text av datatypen str (string). Du kan skapa strängar med enkla eller dubbla citattecken.

Python
1
2
3
namn = "Anna"
hälsning = 'Hej'  # båda funkar
print(hälsning + " " + namn)   # strängkonkatenering

Läsa in text från användaren

Funktionen input() läser en rad text från användaren och returnerar en sträng.

Python
1
2
3
namn = input("Vad heter du? ")
ålder = input("Hur gammal är du? ")  # blir en sträng
print("Din ålder är " + ålder)

Vill du räkna med åldern, omvandla till heltal med int():

Python
1
2
3
ålder = int(input("Hur gammal är du? "))
född = 2025 - ålder
print("Du är född " + str(född))

Tips: När du blandar text och tal behöver talet omvandlas till sträng med str() eller använd f-strängar nedan.

Stränginterpolering (f-strängar)

Det enklaste sättet att sätta samman text i Python är f-strängar (formatsträngar). Skriv f före strängen och bädda in uttryck inom {}.

Python
1
2
3
4
namn = "John"
ålder = 17
print(f"Hej {namn}, din ålder är {ålder} år.")
print(f"Nästa år fyller du {ålder + 1}.")

Nyrad i strängar skrivs med \n:

Python
print(f"Hej {namn}.\nDin ålder är {ålder} år.")

Vanliga strängmetoder

Python
1
2
3
4
5
6
7
text = "  Hej Världen  "
print(text.strip())      # ta bort mellanslag i början/slut
print(text.lower())      # till små bokstäver
print(text.upper())      # till stora bokstäver
print(text.replace("Världen", "Python"))
print(len(text))         # längden
print("Hej jag heter Anna".split())  # ['Hej', 'jag', 'heter', 'Anna']

Dela upp och sätt ihop text: split() och join()

Fördjupning och uppgifter: Dela och slå ihop text: split() och join()

Metoder på djupet

Övningar

1) Skriv ett program som frågar efter namn och favoritdjur och skriver ut: "Hej , jag visste inte att du gillar !" med en f-sträng.

2) Fråga efter för- och efternamn i två input() och skriv ut de sammanfogade med ett mellanslag samt hur många tecken hela namnet har.

3) Bygg en liten "profil"-ruta som skriver ut flera rader med namn, ålder och favoritämne. Använd \n eller flera print().


Små steg – jobba med strängar

1) Skriv ut samma text tre gånger: print(text * 3). 2) Läs två ord och sätt ihop dem med mellanslag. 3) Gör allt till små bokstäver med .lower().

Python
1
2
3
4
ord1 = input("Första ordet: ")
ord2 = input("Andra ordet: ")
mening = f"{ord1} {ord2}"
print(mening.lower())

Mini-projekt: Namnrymdare

Läs ett namn och skriv ut det som initialer (t.ex. “Anna Lisa” → “A.L.”).

Steg: 1) Dela upp namnet i ord med split(). 2) Ta första bokstaven i varje ord med ord[0]. 3) Sätt ihop med punkt mellan med ".".join(...) och lägg till en avslutande punkt.

Python
1
2
3
4
namn = input("Skriv ditt namn: ").strip()
delar = namn.split()
initialer = ".".join([ord[0].upper() for ord in delar]) + "."
print(initialer)

Hitta felen! (5 fel)

Det finns 5 fel i programmet som ska räkna ord och hitta ordet “python”.

Python
mening = input('Skriv en mening: ')
antal_ord = len(mening.split(' '))
if antal_ord == 0:
    print("Du skrev inget!")

if "python" in mening:
    print("Du skrev python!")

print("Antal ord: " + antal_ord)
print("Rensad mening:" + mening.strip)

Facit

Python
# Fix 1: Dela upp ord robust utan att låsa till ett enda mellanslag
# (split() utan argument delar på alla typer av whitespace)
mening = input('Skriv en mening: ')

# Fix 2: Trimma först och kontrollera om något blev kvar
städad = mening.strip()
if not städad:
    print("Du skrev inget!")
else:
    # Fix 3: Skiftlägesokänslig sökning
    if "python" in städad.lower():
        print("Du skrev python!")

    # Fix 4: Använd f-sträng när du blandar text och tal
    antal_ord = len(städad.split())
    print(f"Antal ord: {antal_ord}")

    # Fix 5: Anropa metoden med ()
    print("Rensad mening:" + städad)