Gå till innehållet

if-satser (Python)

Med if/elif/else bestämmer du vad programmet ska göra beroende på villkor.

Mål för denna sida

  • Skriva enkla if och if/elif/else
  • Använda jämförelser: ==, !=, <, <=, >, >=
Python
1
2
3
4
5
lösenord = input("Ange ett lösenord: ")
if lösenord == "test123":
    print("Du är inloggad")
else:
    print("Fel lösenord")

Fler jämförelser: ==, !=, <, <=, >, >=. Kombinera med and, or, not.

Python
1
2
3
4
5
6
7
dag = input("Vilken dag är det? ").lower()
if dag == "lördag":
    print("Det är lördag och jag kan ta det lugnt.")
elif dag == "söndag":
    print("Söndag är vilodag.")
else:
    print("Vanlig vardag")

Övningar

1) Fråga efter användarnamn. Om det är korrekt, skriv “Trevligt att se dig igen!”, annars “Vem är du?”.

2) Åldersregler: läs ålder och skriv ut vad man får göra enligt tabellen (bio utan vuxen 11, lättare arbete 13, moped 15, övningsköra bil 16). Välj det som gäller närmast under eller lika med åldern.

3) Fråga hur många datorer användaren äger och skriv korrekt singular/plural i en enda if-sats.

4) Temperaturkonverterare: först C/F (riktning), sedan temperatur. Räkna och skriv resultatet.


Små steg – från enkel jämförelse till flera val

1) Enkel if: skriv ut “Du får gå in” om ålder >= 13. 2) If/else: skriv ut “För ung” annars. 3) If/elif/else: lägg till fler nivåer (t.ex. barn/ungdom/vuxen).

Python
1
2
3
4
5
6
7
ålder = int(input("Hur gammal är du? "))
if ålder >= 18:
    print("Vuxen")
elif ålder >= 13:
    print("Ungdom")
else:
    print("Barn")

Micro-övningar: - Fråga efter favoritfärg. Om färgen är "blå" eller "grön", skriv "Fin färg!", annars "Också fin". - Fråga dag med input() och jämför i små bokstäver: dag.lower() == "lördag".

Mini-projekt: Dörrvakt

Läs längd i cm (float) och ålder (int). Du får åka berg-och-dalbana om längd >= 140 och ålder >= 12. Skriv tydliga svar.

Utmaningar: - Lägg till en mellanzon där man får åka med vuxen. - Skriv separat varför (för kort/för ung/båda).

Vanliga misstag och felsökning

  • = vs ==: = tilldelar, == jämför.
  • Skiftläge: jämför med .lower() eller .upper().
  • Flera villkor: använd parenteser för tydlighet, t.ex. (a >= 10 and b < 5).

Varför .lower()? Användarinmatning kan vara "LÖRDAG", "lördag" eller " Lördag ". Genom att göra svar = svar.lower().strip() blir jämförelsen enklare och robustare.

Hitta felen! (3 fel)

Koden ska fråga efter dag och skriva olika meddelanden. Rätta tre fel.

Python
dag = input("Vilken dag är det? ")
dag = dag.strip()
if dag = "lördag":
    print("Helg!")
elif dag == "söndag":
    print("Vilodag")
else if dag == "måndag":
    print("Ny vecka!")
else:
    print("Vardag")

Facit

Python
# Fix 1: Normalisera inmatningen så jämförelserna blir skiftläges- och blankstegsokänsliga
dag = input("Vilken dag är det? ").strip().lower()

# Fix 2: Använd jämförelseoperatorn == (inte =)
if dag == "lördag":
    print("Helg!")
elif dag == "söndag":
    print("Vilodag")

# Fix 3: I Python heter det elif, inte "else if"
elif dag == "måndag":
    print("Ny vecka!")
else:
    print("Vardag")