2 svar
340 visningar
Skruzzi behöver inte mer hjälp
Skruzzi 9 – Fd. Medlem
Postad: 10 okt 2021 15:36

Python lotterinummer

Hej

 

försöker göra en vektor som ska slumpa fram 10 olika tal, men får bara upp ett tal när jag kör koden

Här är min kod:

 

import random   

lotteriNummer = []

for i in range(0,10):
    Nummer = random.randint(1, 20)

while Nummer in lotteriNummer:
    Nummer = random.randint(1, 20)

lotteriNummer.append(Nummer)

lotteriNummer.sort()

print('dagens lotteri nummer är: ')
print(lotteriNummer)

Grass 3
Postad: 11 okt 2021 10:17

Ser att du stängt tråden så antar att du löst det på egen hand (bra jobbat!) men kan vara bra att svara om fler har liknande problem i framtiden.

 

Så som du skrivit din kod så loopar du 10 gånger, varpå du skapar en temporär variabel Nummer. Sedan loopar du över en tom array (lotteriNummer = []) som du deklarerat ovan, den koden gör ingenting. För att slutligen lägga till Nummer, en variabel som förvisso existerar i din for-loop, men inte utanför.


Nedan lösning borde funka bättre: 
Loopa igenom 10 gånger, i varje loop så genereras ett nytt slumptal (1 <= N <= 20), som sedan läggs till i din array lotteriNummer. D.v.s kör append i loopen, inte utanför :)

lotteriNummer = []

for i in range(0,10):
    Nummer = random.randint(1, 20)
    lotteriNummer.append(Nummer)

lotteriNummer.sort()
Lindehaven 820 – Lärare
Postad: 11 okt 2021 11:07
Grass skrev:

Nedan lösning borde funka bättre: 
Loopa igenom 10 gånger, i varje loop så genereras ett nytt slumptal (1 <= N <= 20), som sedan läggs till i din array lotteriNummer. D.v.s kör append i loopen, inte utanför :)

lotteriNummer = []

for i in range(0,10):
    Nummer = random.randint(1, 20)
    lotteriNummer.append(Nummer)

lotteriNummer.sort()

Tyvärr fungerar inte den lösningen eftersom samma lotterinummer då kan uppkomma fler än en gång i listan. Med andra ord finns risken att lotterinumren i listan inte är unika.

@Skruzzi var på rätt väg med sin lösning men hade missat litegrann i indenteringen. Eftersom indentering betyder något i Python så blev resultatet inte det förväntade.

Men, med korrekt indentering fungerar @Skruzzi's kod:

import random   

lotteriNummer = []
for i in range(10):
    Nummer = random.randint(1, 20)
    while Nummer in lotteriNummer:     # Om numret redan finns i listan
        Nummer = random.randint(1, 20) # så slumpas ett nytt nummer fram
    lotteriNummer.append(Nummer)

lotteriNummer.sort()
print('dagens lotteri nummer är: ')
print(lotteriNummer)
Svara
Close