Articles

Python random randrange() og randint () for at generere tilfældigt heltal inden for et interval

i denne artikel vil vi se, hvordan du bruger Python random.randrange() og random.randint() funktioner til at generere et tilfældigt tal. Ved hjælp afrandrange() ograndint() funktioner i et tilfældigt modul kan vi generere et tilfældigt heltal inden for et interval. For eksempel vil du generere et tilfældigt heltal mellem 0 og 9, så kan du bruge disse funktioner.

mål for denne lektion. I denne lektion lærer du, hvordan du:

  • Generer et tilfældigt heltal inden for et interval ved hjælp afrandrange() ograndint()
  • generer det tilfældige heltalstal med den specifikke længde kun
  • Generer et tilfældigt heltal multiplum af n
  • Opret en liste over tilfældige heltal
  • Generer et sikkert tilfældigt heltal
  • Generer et tilfældigt heltal multiplum af n

  • Opret en liste over tilfældige heltal
  • Generer et sikkert tilfældigt heltal
  • opret et tilfældigt multidimensionelt array af tilfældige heltal

yderligere læsning

  • løs Python tilfældig datagenerationsøvelse og tilfældig datagenerering spørgsmål
  • også, Læs arbejde med tilfældige data i Python (komplet Guide)

Sådan bruges tilfældig.randint ()

syntaks:

random.randint(start, stop)

denne funktion returnerer et tilfældigt heltal inden for et område. Denne funktion tager to parametre. Begge er obligatoriske. For eksempelrandom.randint(0, 100) returnerer ethvert tilfældigt tal mellem 0 og 100.

randint(start, stop) inkluderer både start-og stopnumre, mens der genereres tilfældigt heltal. Det genererer et tilfældigt tal fra det inkluderende interval.

tilfældig.randint () eksempler på generering af tilfældige heltal

Output:

Random integer from 0 to 9Random integer: 5Random integer from 10 to 100Random integer: 89

Bemærk: Du kan ikke bruge float nummer i randint(). Det vil hæve en ValueError: non-integer arg 1 hvis du bruger andre værdier end et heltal.
se denne vejledning for at generere et tilfældigt flydetal inden for et område.

Sådan bruges tilfældig.randrange ()

lad os se syntaksen først

random.randrange(start, stop)

denne funktion returnerer et tilfældigt valgt heltal fra range(start, stop, step). Denne funktion tager tre parametre. Ud af tre parametre er to parametre valgfri. dvs. start og step er de valgfrie parametre.

  • argumentetstart er startnummeret i et tilfældigt interval. dvs. nedre grænse. Standardværdien af start er 0, hvis ikke angivet.
  • stop argumentet er det sidste tal i et tilfældigt interval. argumentetstop er den øvre grænse.
  • step er en forskel mellem hvert nummer i sekvensen. Trinet er valgfrie parametre. Standardværdien af step er 1, hvis ikke angivet.

tilfældig.randrange () eksempler på generering af tilfældige heltal inden for et område

Her i det følgende eksempel forsøger vi at udskrive en tilfældig int i et givet område. Dette eksempel viser alle varianter afrandom.randrange() funktion.

Output:

Generate random number within a given range in Python Random integer: 7Random integer: 22Random integer: 180

Bemærk: Du kan ikke bruge float værdirandrange(). Det vil hæve en ValueError: non-integer arg 1 for randrange() hvis du brugte andre værdier end et heltal.

generer det tilfældige heltalstal for en bestemt længde

Hvad hvis du vil generere et tilfældigt antal længder n? For eksempel vil du generere et tilfældigt antal længde 4. Lad se eksemplet for at generere det tilfældige antal længde 4 ved hjælp af random.randrange().

Output:

First random number of length 4 is 1931Second random number of length 4 is 5715

Bemærk: Som du kan se, indstiller vi en start til 1000 og stopper til 10000, fordi vi vil generere det tilfældige antal længde 4 (fra 1000 til 9999).

Generer et tilfældigt heltalsmultipel af n

i dette eksempel genererer vi et tilfældigt tal mellem H og y, som er et multiplum af 3 som 3, 6, 39, 66.

import randomnum = random.randrange(3, 300, 3)print("Random number multiple of 3 is ", num)

Output:

Random number multiple of 3 is 264

Generer et tilfældigt negativt heltal

lad os se, hvordan man genererer et tilfældigt negativt heltal mellem -60 til -6.

import randomsingedInt = random.randrange(-60, -6)print("Random negative integer between -60 to -6")print(singedInt)

Output:

Random negative integer between -60 to -6-49

Generer tilfældigt positivt eller negativt heltal

import randomnum = random.randint(-10, 10)print(num)

tilfældigt generere 1 eller -1

import randomnum = random.choice()print(num)

Bemærk: vi brugte tilfældig.valg () for at vælge et enkelt nummer fra listen over numre. Her er vores liste

Generer en liste over tilfældige heltal

i dette afsnit vil vi se, hvordan man genererer flere tilfældige tal. Nogle gange har vi brug for en prøveliste for at udføre test eller enhver operation. I dette tilfælde kan vi i stedet for at oprette det manuelt oprette en liste med tilfældige heltal ved hjælp af randint() eller randrange(). I dette eksempel vil vi se, hvordan du opretter en liste over 10 tilfældige heltal.

udgang:

Printing list of 10 random numbers

i dette eksempel er der en chance for at få et duplikatnummer på en liste

Opret en liste over tilfældige tal uden duplikater

i ovenstående eksempel er der en chance for at få et duplikat tilfældigt tal på en liste. Hvis du vil sikre dig, at hvert nummer på listen er unikt, er der en enkel måde at generere en liste over unikke tilfældige tal på. Brug tilfældig.prøve () vi kan oprette en liste over unikke tilfældige tal.

  • random.sample() returnerer en samplet liste over valgte tilfældige tal inden for et interval af værdier.
  • det gentager aldrig elementet, så vi kan få en liste over tilfældige tal uden duplikater

lad os se, hvordan du genererer 10 tilfældige heltal fra området 0 til 1000.

Output:


Hvis du vil have hvert tal multiplum afn, skal du brugestepparameter forrange() funktion. For eksempel vil du have en liste med 10 tilfældige tal, men hvert heltal i en liste skal være flere af 5, og brug derefter random.sample(range(0, 1000, 5), 10)

Læs mere: tilfældig.prøve ()

Sorter tilfældige talliste

Hvis du vil sortere en liste over tilfældige heltal i stigende rækkefølge, skal du bruge sort() funktion

Output:

Before sorting random integers listAfter sorting random integers list

Generer et sikkert tilfældigt heltal

frem for alt er eksempler ikke kryptografisk sikre. Den kryptografisk sikre tilfældige generator genererer tilfældige tal ved hjælp af synkroniseringsmetoder for at sikre, at ingen to processer kan opnå det samme nummer på samme tid. Hvis du producerer tilfældige tal til en sikkerhedsfølsom applikation, skal du bruge denne tilgang.

Hvis du bruger Python-version mindre end 3.6, og vil generere kryptografisk sikkert tilfældigt heltal, skal du brugerandom.SystemRandom().randint()ellerrandom.SystemRandom().randrange() funktioner. Se, hvordan du sikrer tilfældige data i Python.

eksempel:

Output:

Secure random integer is 30Secure random integer is 162

Hvis du bruger Python-version højere end 3.6, kan du bruge secrets-modulet til at generere et sikkert tilfældigt heltal.

import secretsprint("Random integer generated using secrets module is ")# from 0 to 10secureNum1 = secrets.randbelow(10)print(secureNum1)

Output:

Random integer generated using secrets module is 8
  • sikre tilfældige data i python.
  • Python secrets module

Opret et tilfældigt multidimensionelt array af tilfældige heltal

Pythons numpy-modul har ennumpy.random pakke til generering af tilfældige data. For at oprette et tilfældigt multidimensionelt array af heltal inden for et givet interval kan vi bruge følgende numpy-metoder:

Lad nu se eksemplet.

Generer en 4 gange 4 række ints mellem 10 og 50, eksklusiv:

Output:

4 x 4 array of ints between 10 and 20 inclusive ]

Generer en 5 gange 3 række ints mellem 60 og 100 inklusive:

Output:

3 x 5 array of ints between 10 and 20 exclusive ]

punkter at huske om randint() og randrange ()

  • brugrandint() når du vil generere et tilfældigt tal fra et inkluderende område.
  • brug randrange() når du vil generere et tilfældigt tal inden for et interval ved at angive trinværdi. Det producerer et tilfældigt tal fra et eksklusivt sortiment.

Du skal være opmærksom på nogle værdibegrænsninger for enrandrange() funktion.

  • randint() randrandrange() fungerer kun med heltal. Du kan ikke bruge float-numre.
  • hvis du bruger float numre det vil hæve ValueError: non-integer arg 1 for randrange(). Se denne artikel for at generere et tilfældigt flydetal inden for et interval.
  • trinnet må ikke være 0. Hvis den er indstillet til 0, får du en ValueError: zero step for randrange()

starten skal ikke være større end stop, hvis du bruger alle positive tal. Hvis du fejlagtigt indstiller start større end stop, får du en ValueError: empty range for randrange()

import randomprint(random.randrange(100, 10, 2))

Output:

ValueError: empty range for randrange()

men du kan også indstille startværdi større end stop, hvis du bruger negativ trinværdi.

import randomprint(random.randrange(100, 10, -2))

Output:

60

så hvad synes du?

Jeg vil gerne høre fra dig. Hvad synes du om denne artikel om randint() og randrange()? Eller måske savnede jeg en af anvendelserne af disse to funktioner. Uanset hvad, lad mig vide ved at efterlade en kommentar nedenfor.

prøv også at løse følgende øvelse og prøve for at få en bedre forståelse af at arbejde med tilfældige data i Python.

  • Python tilfældig datagenerationsøvelse til at øve og mestre de tilfældige datagenereringsteknikker i Python.Python tilfældig datagenerering til at teste dine tilfældige datagenereringskoncepter.