Python random randrange () och randint () för att generera slumpmässigt heltal inom ett intervall
i den här artikeln kommer vi att se hur man använder Python random.randrange()
och random.randint()
funktioner för att generera ett slumpmässigt nummer. Använda randrange()
och randint()
funktioner i en slumpmässig modul kan vi generera ett slumpmässigt heltal inom ett intervall. Till exempel vill du generera ett slumpmässigt heltal mellan 0 och 9, då kan du använda dessa funktioner.
mål för denna lektion. I den här lektionen lär du dig att:
- generera ett slumpmässigt heltal inom ett intervall med
randrange()
ochrandint()
- generera slumpmässigt heltal med den specifika längden
- generera ett slumpmässigt heltal multipel av n
- skapa en lista med slumpmässiga heltal
- generera ett säkert slumpmässigt heltal
- skapa en slumpmässig flerdimensionell array av slumpmässiga heltal
Vidare läsning
- lös python slumpmässig datagenereringsövning och slumpmässig datagenereringsquiz
- också, läs arbeta med slumpmässiga data i Python (komplett Guide)
hur man använder slumpmässig.randint ()
Syntax:
random.randint(start, stop)
denna funktion returnerar ett slumpmässigt heltal inom ett intervall. Denna funktion tar två parametrar. Båda är obligatoriska. Till exempel returnerar random.randint(0, 100)
ett slumpmässigt nummer mellan 0 och 100.
randint(start, stop)
innehåller både start-och stoppnummer samtidigt som slumpmässigt heltal genereras. Det kommer att generera ett slumpmässigt nummer från det inkluderande intervallet.
slumpmässig.randint () exempel på att generera slumpmässiga heltal
utgång:
Random integer from 0 to 9Random integer: 5Random integer from 10 to 100Random integer: 89
Obs: Du kan inte använda flottörnummer i randint()
. Det kommer att höja ett ValueError: non-integer arg 1
om du använder andra värden än ett heltal.
se den här guiden för att generera ett slumpmässigt flottörnummer inom ett intervall.
hur man använder slumpmässigt.randrange ()
låt oss se syntaxen först
random.randrange(start, stop)
denna funktion returnerar ett slumpmässigt valt heltal frånrange(start, stop, step)
. Denna funktion tar tre parametrar. Av tre parametrar är två parametrar valfria. det vill säga start
och step
är de valfria parametrarna.
-
start
argumentet är startnumret i ett slumpmässigt intervall. det vill säga lägre gräns. Standardvärdet förstart
är 0 om det inte anges. -
stop
argumentet är det sista numret i ett slumpmässigt intervall. argumentetstop
är den övre gränsen. -
step
är en skillnad mellan varje nummer i sekvensen. Steget är valfria parametrar. Standardvärdet förstep
är 1 om det inte anges.
slumpmässig.randrange () exempel på att generera slumpmässiga heltal inom ett intervall
här i följande exempel försöker vi skriva ut en slumpmässig int i ett givet intervall. Detta exempel visar alla varianter avrandom.randrange()
funktion.
utgång:
Generate random number within a given range in Python Random integer: 7Random integer: 22Random integer: 180
Obs: Du kan inte använda flottörvärde randrange()
. Det kommer att höja ett ValueError: non-integer arg 1 for randrange()
om du använde andra värden än ett heltal.
generera slumpmässigt heltal av en specifik längd
vad händer om du vill generera ett slumpmässigt antal längd n
? Till exempel vill du generera ett slumpmässigt antal Längd 4. Låt se exemplet för att generera det slumpmässiga antalet Längd 4 med random.randrange()
.
utgång:
First random number of length 4 is 1931Second random number of length 4 is 5715
Obs: som du kan se sätter vi en start på 1000 och slutar till 10000 eftersom vi vill generera det slumpmässiga antalet Längd 4 (från 1000 till 9999).
generera ett slumpmässigt heltal multipel av n
i det här exemplet genererar vi ett slumpmässigt tal mellan x och y, vilket är en multipel av 3 som 3, 6, 39, 66.
import randomnum = random.randrange(3, 300, 3)print("Random number multiple of 3 is ", num)
utgång:
Random number multiple of 3 is 264
generera ett slumpmässigt negativt heltal
Låt oss se hur man genererar ett slumpmässigt negativt heltal mellan -60 till -6.
import randomsingedInt = random.randrange(-60, -6)print("Random negative integer between -60 to -6")print(singedInt)
utgång:
Random negative integer between -60 to -6-49
generera slumpmässigt positivt eller negativt heltal
import randomnum = random.randint(-10, 10)print(num)
slumpmässigt generera 1 eller -1
import randomnum = random.choice()print(num)
Obs: vi använde slumpmässigt.val () för att välja ett enda nummer från listan med siffror. Här är vår lista
generera en lista med slumpmässiga heltal
i det här avsnittet kommer vi att se hur man genererar flera slumpmässiga nummer. Ibland behöver vi en provlista för att utföra testning eller någon operation. I det här fallet kan vi istället för att skapa det manuellt skapa en lista med slumpmässiga heltal med randint()
eller randrange()
. I det här exemplet ser vi hur du skapar en lista med 10 slumpmässiga heltal.
utgång:
Printing list of 10 random numbers
i det här exemplet finns det en chans att få ett duplikatnummer i en lista
skapa en lista med slumptal utan dubbletter
i exemplet ovan finns det en chans att få ett duplikat slumptal i en lista. Om du vill se till att varje nummer i listan är unikt finns det ett enkelt sätt att generera en lista med unika slumptal. Använda slumpmässigt.prov () vi kan skapa en lista med unika slumptal.
-
random.sample()
returnerar en samplad lista över valda slumptal inom ett värdeområde. - det upprepar aldrig elementet, så att vi kan få en lista med slumptal utan dubbletter
Låt oss se hur man genererar 10 slumpmässiga heltal från intervall 0 till 1000.
utgång:
om du vill ha varje nummer multipel av n
, använd sedan step
parameter för range()
– funktionen. Till exempel vill du ha en lista med 10 slumptal, men varje heltal i en lista måste vara flera av 5 använd sedan random.sample(range(0, 1000, 5), 10)
Läs Mer: random.prov()
Sortera slumptal lista
om du vill sortera en lista med slumpmässiga heltal i stigande ordning använd sort()
funktion
utgång:
Before sorting random integers listAfter sorting random integers list
generera ett säkert slumpmässigt heltal
framför allt är exemplen inte Kryptografiskt säkra. Den Kryptografiskt säkra slumpgeneratorn genererar slumptal med synkroniseringsmetoder för att säkerställa att inga två processer kan få samma nummer samtidigt. Om du producerar slumptal för en säkerhetskänslig applikation måste du använda detta tillvägagångssätt.
Om du använder Python version mindre än 3.6, och vill generera Kryptografiskt säker slumpmässigt heltal sedan använda random.SystemRandom().randint()
eller random.SystemRandom().randrange()
funktioner. Se hur du säkrar slumpmässiga data i Python.
exempel:
utgång:
Secure random integer is 30Secure random integer is 162
Om du använder Python-version högre än 3.6 kan du använda secrets-modulen för att generera ett säkert slumpmässigt heltal.
import secretsprint("Random integer generated using secrets module is ")# from 0 to 10secureNum1 = secrets.randbelow(10)print(secureNum1)
utgång:
Random integer generated using secrets module is 8
- säkra slumpmässiga data i python.
- Python secrets modul
skapa en slumpmässig flerdimensionell array av slumpmässiga heltal
Pythons NumPy-modul har ett numpy.random
paket för att generera slumpmässiga data. För att skapa en slumpmässig flerdimensionell uppsättning heltal inom ett givet intervall kan vi använda följande NumPy-metoder:
Nu, låt se exemplet.
generera en 4 x 4 array av int mellan 10 och 50, exklusiv:
utgång:
4 x 4 array of ints between 10 and 20 inclusive ]
generera en 5 x 3 array av int mellan 60 och 100, inklusive:
utgång:
3 x 5 array of ints between 10 and 20 exclusive ]
poäng att komma ihåg om randint() och randrange ()
- använd
randint()
när du vill generera ett slumptal från ett inkluderande intervall. - använd
randrange()
när du vill generera ett slumptal inom ett intervall genom att ange stegvärde. Det producerar ett slumptal från ett exklusivt sortiment.
Du bör vara medveten om vissa värdebegränsningar för en randrange()
– funktion.
-
randint(
) randrandrange()
fungerar bara med heltal. Du kan inte använda float-nummer. - Om du använder float-nummer kommer det att höja
ValueError: non-integer arg 1 for randrange()
. Se den här artikeln för att generera ett slumpmässigt flottörnummer mellan inom ett intervall. - steget får inte vara 0. Om den är inställd på 0 får du ett
ValueError: zero step for randrange()
starten ska inte vara större än stopp om du använder alla positiva tal. Om du felaktigt ställer in start större än stopp får du ett ValueError: empty range for randrange()
import randomprint(random.randrange(100, 10, 2))
utgång:
ValueError: empty range for randrange()
men du kan också ställa in startvärde större än stopp om du använder negativt stegvärde.
import randomprint(random.randrange(100, 10, -2))
utgång:
60
så vad tycker du?
Jag vill höra från dig. Vad tycker du om den här artikeln om randint()
och randrange()
? Eller kanske missade jag en av användningarna av dessa två funktioner. Hur som helst, låt mig veta genom att lämna en kommentar nedan.
försök också lösa följande övning och frågesport för att få en bättre förståelse för att arbeta med slumpmässiga data i Python.
- Python slumpmässig datagenereringsövning för att öva och behärska slumpmässiga datagenereringstekniker i Python.
- Python random data generation Quiz för att testa dina slumpmässiga data generation begrepp.
Leave a Reply