Gå till innehållet

Slumptal (Python)

Med slumptal kan programmet överraska! Vi använder modulen random.

Mål för denna sida

  • Skapa heltal inom ett intervall med randint(a, b)
  • Välja slumpmässigt från en lista med choice

Exempel

Python
1
2
3
4
5
6
7
8
import random

tal = random.randint(1, 10)   # heltal 1..10
print("Ditt slumptal:", tal)

namn = ["Ava", "Noah", "Eli", "Mio"]
vinnare = random.choice(namn)
print("Vinnare är:", vinnare)

Vanliga misstag

  • Glömma import random före användning
  • Fel intervall: randint(a, b) inkluderar både a och b

Övningar

1) Slumpa ett tal 1–100. Låt användaren gissa tills rätt (visa “högre/lägre”). 2) Slumpa ett namn i klassen från en lista. 3) Skapa en tärningssimulator (1–6) och räkna hur många gånger varje siffra kommer på 100 kast.


Små steg – börja med randint

Python
import random
print(random.randint(1, 6))   # tärning

Micro-övningar: - Skriv ut 10 slumpade tal mellan 1 och 10. - Skapa en lista med 5 slumpade tal 1..100 och skriv ut min/max.

Räkna frekvens (hur ofta något händer)

Python
1
2
3
4
5
6
import random
räknare = [0, 0, 0, 0, 0, 0]
for _ in range(100):
    kast = random.randint(1, 6)
    räknare[kast - 1] += 1
print("Frekvenser:", räknare)

Utmaning: Skriv ut procenter och en enkel textgraf:

Text Only
1
2
3
1: ######
2: ###
...

Mini-projekt: Lyckohjul

Skapa en lista med vinster (t.ex. “godis”, “inget”, “extra tid”, “penna”). Slumpa ett resultat varje gång användaren trycker Enter, q avslutar. Räkna hur ofta varje vinst kommer.

Hitta felen! (5 fel)

Rätta följande slumptals-kod:

Python
1
2
3
4
5
6
7
8
9
tal = random.randint(1, 0)
import random
namn = []
vinnare = random.choice(namn)
for i in range(3):
    print(random.randint(1, 3))
print(random.randint(1, 3))
print(i)
print(random.choise([1,2,3]))

Facit

Python
# Fix 1: Importera modulen innan användning
import random

# Fix 2: Korrekt intervall: min måste vara <= max
tal = random.randint(0, 1)

# Fix 3: Välj inte från tom lista – skapa en lista först eller kontrollera längden
namn = ["Ava", "Noah", "Eli"]
vinnare = random.choice(namn)
print("Vinnare:", vinnare)

# Fix 4: Undvik överflödigt extra print och klargör vad i betyder
for i in range(3):
    print(random.randint(1, 3))
print("Sista i =", i)

# Fix 5: Stavning – choice, inte choise
print(random.choice([1, 2, 3]))