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)
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()
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)