C· Byggareprogrammering· ca 30 min· grundläggande — ändras sällan· verifierad 2026-09-20
Program som pratar med användaren
Kunna läsa in text, konvertera till tal och svara — och hantera fel inmatning.
Förkunskaper
- CPython — grundernakrävs
Intuition
input() läser en rad från användaren och ger alltid en sträng — även om användaren skriver siffror.
alder = input("Hur gammal är du? ")
print(alder + 1) # TypeError! alder är "12", inte 12
Du måste konvertera: int(alder). Men om användaren skriver «tolv» kraschar int(). Riktiga program måste tåla det.
Kod
def las_tal(fraga, forsok=3):
for _ in range(forsok):
svar = input(fraga).strip().replace(",", ".")
try:
return float(svar)
except ValueError:
print(f"'{svar}' är inte ett tal. Försök igen.")
raise ValueError("för många felaktiga försök")
alder = las_tal("Hur gammal är du? ")
print(f"Nästa år fyller du {alder + 1:.0f}")
Tre saker som gör funktionen bra:
.strip()tar bort mellanslag användaren råkat skriva..replace(",", ".")accepterar svenskt decimalkomma.try/exceptfångar felet och frågar igen i stället för att krascha.
Testa alltid ditt program med: ett vanligt värde, tomt svar, text i stället för tal, och ett negativt tal. Det är de fyra som avslöjar buggar.
Behärskning innebär
- Läser in text och konverterar till tal
- Hanterar felaktig inmatning utan att programmet kraschar
Logga in för att göra övningarna och bygga upp din behärskning.