Programmet ditt viser alltid det samme navnet og den samme alderen fordi verdiene er hardkodet. Med input() i Python kan du la brukeren skrive inn verdier mens programmet kjører. Plutselig har du et program som tilpasser seg, i stedet for et som bare spiller av det samme hver gang.
Slik bruker du input i Python
Funksjonen input() stopper programmet og venter på at brukeren skriver noe i terminalen. Brukeren skriver teksten sin og trykker Enter. Det brukeren skrev, returneres som en streng som du kan lagre i en variabel:
- navn = input("Hva heter du? ")
- print(f"Heisan {navn}")
Teksten inne i parentesen er prompten som vises til brukeren. Legg merke til mellomrommet etter spørsmålstegnet. Uten det skriver brukeren svaret sitt rett inntil spørsmålstegnet, og det ser rotete ut.
Prompten bestemmer brukeropplevelsen
Teksten du sender til input() er det eneste brukeren ser før de skal svare. En god prompt er kort og tydelig. "Skriv inn alderen din: " er bedre enn "Alder", fordi brukeren skjønner hva som forventes.
Du kan også bruke escape-tegn i prompten. input("Hva heter du?\n") setter et linjeskift etter spørsmålet, slik at brukeren skriver på linjen under. Det gjør utskriften mer ryddig i terminalen.
Input returnerer alltid en streng
Her er den viktigste detaljen om input() i Python: den returnerer alltid en streng, uansett hva brukeren skriver. Skriver brukeren "25", får du strengen "25", ikke tallet 25. Prøver du å gjøre matematikk med denne verdien, smeller det.
Tenk deg dette programmet:
- alder = input("Hvor gammel er du? ")
- fodeaar = 2026 - alder
Du får en TypeError: Python kan ikke trekke en streng fra et tall. Løsningen er å konvertere datatypen med int() eller float().
Konverter input til tall
Du har to måter å konvertere input til et tall. Den første er å konvertere etterpå:
- alder_tekst = input("Hvor gammel er du? ")
- alder = int(alder_tekst)
Den andre er å pakke input() rett inn i int():
- alder = int(input("Hvor gammel er du? "))
Begge fungerer. Den andre varianten er mer kompakt og brukes oftest. Python evaluerer innenfra og ut: først kjøres input() som gir en streng, så konverterer int() strengen til et heltall. Trenger du desimaler, bruker du float() i stedet for int().
Håndter feil input
Hva skjer når brukeren skriver "tjuefem" i stedet for "25"? Du får en ValueError. Python kan ikke konvertere vilkårlig tekst til et tall. I et ekte program bør du håndtere dette med en try/except-blokk:
- try:
- alder = int(input("Hvor gammel er du? "))
- except ValueError:
- print("Du må skrive et tall.")
Uten feilhåndtering krasjer programmet. Med try/except kan du gi brukeren en forståelig beskjed og eventuelt spørre på nytt. Denne teknikken blir viktigere jo mer input programmet ditt tar imot.
Bruk input sammen med f-strenger
Input og f-strenger er et naturlig par. Du samler inn data fra brukeren og presenterer den tilbake i en formatert setning:
- navn = input("Navn: ")
- alder = int(input("Alder: "))
- fodeaar = 2026 - alder
- print(f"{navn} er født i {fodeaar}")
Skriver brukeren "Magnus" og "25", får de "Magnus er født i 2001". Programmet tar imot data, gjør en beregning, og presenterer resultatet. Det er grunnmønsteret for svært mange Python-programmer.
Flere input-kall etter hverandre
Du kan bruke input() så mange ganger du vil i et program. Hvert kall stopper og venter på svar. For et enkelt registreringsskjema kan du spørre om navn, e-post og alder i separate input-kall. Programmet kjører dem sekvensielt, og brukeren svarer på ett spørsmål av gangen.
Hold antall input-kall rimelig. Et program som stiller 15 spørsmål i terminalen blir slitsomt. For større datamengder er det bedre å lese fra en fil eller bruke et grafisk grensesnitt.
Valider input før du bruker den
Brukere skriver ikke alltid det du forventer. Et robust program sjekker inputen før det går videre. For tall kan du bruke metoden .isdigit() på strengen: "25".isdigit() gir True, mens "tjuefem".isdigit() gir False. Denne metoden fungerer bare for positive heltall (den godtar ikke desimalpunktum eller minustegn), men den dekker mange tilfeller.
For mer avansert validering kan du sjekke lengden på input, om den inneholder bestemte tegn, eller om den matcher et mønster. Et fødselsnummer skal ha 11 siffer, en e-postadresse skal inneholde @. Slike sjekker gjør programmer robuste nok til at andre kan bruke dem uten å krasje.
Input i while-løkker
Ofte vil du spørre brukeren på nytt hvis svaret ikke er gyldig. Kombiner input() med en while-løkke:
- alder = ""
- while not alder.isdigit():
- alder = input("Skriv alderen din (tall): ")
- alder = int(alder)
Løkken spør helt til brukeren faktisk skriver et tall. Denne teknikken brukes i nesten alle interaktive Python-programmer. Du lærer mer om while-løkker i kontrollflyt-artiklene.
Neste steg
Nå som du kan ta imot input, vil du sannsynligvis gjøre noe forskjellig basert på hva brukeren skriver. Kontrollflyt i Python viser deg if-setninger og løkker som lar programmet ta beslutninger. Vil du forstå bedre hvorfor input alltid gir en streng og hvordan du konverterer mellom datatyper, har artikkelen om datatypekonvertering i Python alle detaljene. Pythons offisielle dokumentasjon for input() forklarer funksjonen i korte trekk.
Denne artikkelen bygger på kurset Python for nybegynnere på Utdannet.no. I kurset bruker du input() til å lage interaktive programmer med if-betingelser, løkker og funksjoner, og du får oppgaver med løsningsforslag underveis.




