Articles

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 medrandrange() 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ör start ä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ör step ä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ändrandint() 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.