Interaktivitet (terminal)
Vi låter användaren skriva svar i terminalen. Du läser med input() och skriver ut med print().
Mål för denna sida
Läsa och skriva i terminalen
Säkerställa att användaren skriver något vettigt (validering)
Python namn = input ( "Vad heter du? " )
stad = input ( "Var bor du? " )
print ( f "Hej { namn } , du bor i { stad } ." )
Validera inmatning (inte tomt)
Ibland måste vi kolla att något verkligen skrevs in.
Python namn = ""
while not namn . strip ():
namn = input ( "Skriv ditt namn: " )
print ( f "Tack, { namn } !" )
Exempel med ja/nej-fråga:
Python svar = ""
while svar . lower () not in ( "j" , "n" ):
svar = input ( "Vill du fortsätta? (j/n): " )
if svar . lower () == "j" :
print ( "Fortsätter…" )
else :
print ( "Avslutar…" )
Strängmetoder du ofta använder
strip() – tar bort mellanslag i början/slut
lower() – gör allt till små bokstäver
replace(a, b) – byter ut text a mot b
Python epost = input ( "Ange din e-post: " )
säker = epost . replace ( "@" , "(at)" )
print ( "Säker e-post:" , säker )
Vanliga misstag
Jämföra med fel fall: jämför små bokstäver med små (.lower()).
Tomma svar: glöm inte .strip() när du kollar om något skrevs.
Övningar
1) Fråga efter namn och adress. Skriv ut: Hej , du bor på .
2) Fråga användaren om ett lösenord tills hen skriver ett icke-tomt lösenord. Bekräfta med print.
3) Fråga efter ett ord och skriv ut ordet baklänges. Tips: ord[::-1].
4) Fråga “Vill du fortsätta? (j/n)”. Kräv giltigt svar via en while-loop och skriv sedan “Fortsätter…” eller “Avslutar…”.
5) Läs in en e-postadress och ersätt @ med (at) innan du skriver ut den.
Menyloop (vanligt mönster)
Python val = ""
while val != "3" :
print ( " \n Meny:" )
print ( "1. Hälsa" )
print ( "2. Eko" )
print ( "3. Avsluta" )
val = input ( "Välj (1-3): " ) . strip ()
if val == "1" :
namn = input ( "Ditt namn: " )
print ( f "Hej { namn } !" )
elif val == "2" :
text = input ( "Skriv något: " )
print ( "Du skrev:" , text )
elif val == "3" :
print ( "Hej då!" )
else :
print ( "Välj 1, 2 eller 3." )
Micro-övningar:
- Lägg till menyval 4: “Adderare” som läser två tal och skriver summan.
- Kräv att namn inte är tomt (validera med .strip()).
Mini-projekt: Gästbok
Låt användaren skriva in namn flera gånger tills hen skriver tomt. Skriv sedan ut alla namn, ett per rad.
Python namnlista = []
while True :
n = input ( "Ange namn (Enter för att sluta): " ) . strip ()
if not n :
break
namnlista . append ( n )
print ( " \n Gästbok:" )
for i , n in enumerate ( namnlista , start = 1 ):
print ( f " { i } . { n } " )
Hitta felen! (5 fel)
Det finns 5 fel i menyloopen nedan (typer, skiftläge, exit-villkor).
Python val = None
while val != 3 :
print ( "1. Hej" )
print ( "2. Eko" )
print ( "3. Avsluta" )
val = input ( "Välj: " )
if val == 1 :
print ( "Hej!" )
elif val == "2" :
text = input ( "Skriv: " )
print ( "du skrev:" , text )
elif val == "Q" :
break
else :
print ( "Fel val" )
Facit
Python # Fix 1: Använd strängar för menyval
val = ""
while val != "3" :
print ( "1. Hej" )
print ( "2. Eko" )
print ( "3. Avsluta" )
val = input ( "Välj: " ) . strip ()
# Fix 2–3: Jämför som sträng och normalisera vid behov
if val == "1" :
print ( "Hej!" )
elif val == "2" :
text = input ( "Skriv: " )
print ( "Du skrev:" , text ) # Fix 4: konsekvent stor bokstav
elif val . lower () == "q" : # Fix 5: tillåt q som snabbavslut
break
elif val == "3" :
print ( "Hej då!" )
else :
print ( "Fel val" )
15 augusti 2025
14 augusti 2025