Articles

Python random randrange () and randint () generálni random integer number tartományban

ebben a cikkben, látni fogjuk, hogyan kell használni Python random.randrange() and random.randint() funkciók generálni egy véletlen számot. A randrange() és randint() egy véletlenszerű modul funkciói segítségével véletlenszerű egész számot generálhatunk egy tartományon belül. Például véletlenszerű egész számot szeretne generálni 0-9 között, akkor használhatja ezeket a funkciókat.

A lecke céljai. Ebben a leckében megtanulod, hogyan kell:

  • Generál egy véletlen egész tartományon belül a randrange() vagy randint()
  • Létre a véletlen egész számot a meghatározott ideig csak
  • Generál egy véletlen egész számú többszöröse n
  • hozzon Létre egy listát a véletlen egész szám
  • Létrehoz egy biztonságos véletlen szám
  • Létrehoz egy véletlenszerű többdimenziós tömb véletlen egész szám

További információk

  • Megoldani a Python Véletlenszerű Adatok Generáció Gyakorlat, valamint Véletlenszerű Adatok Generációs Kvíz
  • Is, olvassa el a véletlenszerű adatokkal való munkát Python-ban (teljes útmutató)

véletlenszerű használat.randint ()

szintaxis:

random.randint(start, stop)

Ez a függvény egy tartományon belüli véletlenszerű egész számot ad vissza. Ez a funkció két paramétert vesz igénybe. Mindkettő kötelező. Például a random.randint(0, 100) visszaad minden véletlen számot 0-100 között.

a randint(start, stop) magában foglalja mind a start, mind a stop számokat véletlenszerű egész szám generálása közben. Ez létrehoz egy véletlen számot a befogadó tartományban.

random.randint() examples of generating random integers

Output:

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

Note: You cannot use float number in randint(). Ez növeli a ValueError: non-integer arg 1, ha más értékeket használ, mint egy egész szám.
olvassa el ezt az útmutatót, hogy véletlenszerű úszószámot hozzon létre egy tartományon belül.

véletlenszerű használat.randrange ()

nézzük meg először a szintaxist

random.randrange(start, stop)

Ez a függvény egy véletlenszerűen kiválasztott egész számot ad vissza a range(start, stop, step). Ez a funkció három paramétert vesz igénybe. Három paraméter közül két paraméter választható. azaz, start és step az opcionális paraméterek.

  • a start argumentum a kezdő szám egy véletlen tartományban. azaz, alsó határ. A start alapértelmezett értéke 0, ha nincs megadva.
  • a stop argumentum az utolsó szám egy véletlen tartományban. a stop argumentum a felső határ.
  • a step a szekvencia egyes számai közötti különbség. A lépés opcionális paraméterek. A step alapértelmezett értéke 1, ha nincs megadva.

random.randrange () példák véletlenszerű egész számok generálására egy

tartományban itt a következő példában egy véletlenszerű int-t próbálunk kinyomtatni egy adott tartományban. Ez a példa bemutatja a random.randrange() függvény összes változatát.

kimenet:

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

megjegyzés: nem használhatja az úszóértéket randrange(). Ez növeli a ValueError: non-integer arg 1 for randrange(), ha használt értékek eltérő egész szám.

generál egy adott hosszúság véletlen egész számát

mi van, ha véletlenszerű hosszúságot szeretne generálni n? Például, azt szeretnénk, hogy létrehoz egy véletlen számú hossza 4. Lásd a példát, hogy létrehoz a véletlen száma hossza 4 segítségével random.randrange().

kimenet:

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

megjegyzés: mint látható, beállítunk egy start 1000-re, majd megállunk 10000-re, mert a 4-es hosszúságú véletlen számot akarjuk generálni (1000-től 9999-ig).

generál egy véletlen egész szám többszöröse n

ebben a példában, akkor létrehoz egy véletlen számot között x és y, ami egy többszörös 3 mint 3, 6, 39, 66.

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

kimenet:

Random number multiple of 3 is 264

véletlenszerű negatív egész szám generálása

lássuk, hogyan lehet véletlenszerű negatív egész számot generálni -60 -6 között.

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

kimenet:

Random negative integer between -60 to -6-49

generál véletlenszerű pozitív vagy negatív egész

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

véletlenszerűen generál 1 vagy -1

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

megjegyzés: véletlenszerűen használtuk.választás() egyetlen szám kiválasztása a számok listájából. Itt a lista

létrehoz egy listát a véletlen egész számok

ebben a szakaszban, látni fogjuk, hogyan kell generálni több véletlen számok. Néha szükségünk van egy minta listára a tesztelés vagy bármely művelet végrehajtásához. Ebben az esetben ahelyett, hogy manuálisan hoznánk létre, létrehozhatunk egy listát véletlenszerű egészekkel a randint() vagy randrange()használatával. Ebben a példában látni fogjuk, hogyan lehet létrehozni egy listát 10 véletlenszerű egész számról.

kimenet:

Printing list of 10 random numbers

ebben a példában lehetőség van arra, hogy egy ismétlődő számot kapjon a

listában hozzon létre egy véletlenszerű számok listáját duplikációk nélkül

a fenti példában lehetőség van arra, hogy duplikált véletlen számot kapjon egy listában. Ha meg szeretné győződni arról, hogy a lista minden száma egyedi-e, egyszerű módja annak, hogy létrehozzon egy egyedi véletlen számok listáját. Véletlenszerű használata.minta () tudjuk létrehozni egy listát az egyedi véletlen számokat.

  • a random.sample() értéktartományon belül visszaadja a kiválasztott véletlen számok mintavételezett listáját.
  • soha nem ismétli az elemet, így megkaphatjuk a véletlenszerű számok listáját duplikációk nélkül

lássuk, hogyan lehet 10 véletlenszerű egész számot generálni a 0-1000 tartományból.

kimenet:


Ha azt szeretné, hogy minden szám többszöröse n, akkor használja a stepparaméter függvény. Például, szeretne egy listát a 10 véletlen számok, de minden egész egy listát kell többszöröse 5 majd használja random.sample(range(0, 1000, 5), 10)

tovább: random.minta()

véletlenszerű számok listájának rendezése

Ha a véletlenszerű egészek listáját növekvő sorrendben szeretné rendezni, használja asort() függvény

kimenet:

biztonságos véletlenszerű egész szám generálása

mindenekelőtt a példák nem kriptográfiailag biztonságosak. A kriptográfiailag biztonságos véletlen generátor generál véletlen számok segítségével szinkronizálás módszerek annak biztosítására, hogy nincs két folyamat kaphat ugyanazt a számot egyszerre. Ha véletlenszerű számokat készít egy biztonsági érzékeny alkalmazáshoz, akkor ezt a megközelítést kell használnia.

ha a Python verzió kevesebb, mint 3.6, és szeretné létrehozni kriptográfiailag biztonságos véletlen egész akkor használja a random.SystemRandom().randint()vagy random.SystemRandom().randrange() funkciók. Nézze meg, hogyan lehet véletlenszerű adatokat biztosítani a Python-ban.

példa:

kimenet:

Secure random integer is 30Secure random integer is 162

Ha 3.6-nál magasabb Python verziót használ, akkor a secrets modul segítségével biztonságos véletlenszerű egész számot hozhat létre.

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

kimenet:

Random integer generated using secrets module is 8
  • biztonságos véletlen adatok python.
  • Python titkok modul

hozzon létre egy véletlen többdimenziós tömb véletlen egészek

Python NumPy modul egy numpy.random csomag generálni véletlen adatok. Az egész számok véletlenszerű többdimenziós tömbjének létrehozásához egy adott tartományon belül a következő NumPy módszereket használhatjuk:

most nézzük meg a példát.

Létrehoz egy 4 x 4-es tömb ints között, 10, 50, exkluzív:

Teljesítmény:

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

Létrehoz egy 5 x 3 sor ints között 60, 100, inclusive:

Teljesítmény:

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

Pontot, hogy emlékezzen randint() pedig randrange()

  • a randint() ha azt akarod, hogy létrehoz egy véletlenszerű számot, a befogadó tartományban.
  • használja a randrange() értéket, ha véletlenszerű számot szeretne létrehozni egy tartományon belül a lépésérték megadásával. Ez termel egy véletlen számot egy exkluzív tartományban.

tudnia kell a függvény értékkorlátozásait.

  • The randint() rand randrange() csak egész számokkal működik. Nem használhat úszó számokat.
  • ha úszó számokat használ, akkor ValueError: non-integer arg 1 for randrange(). Lásd ezt a cikket, hogy létrehoz egy véletlen úszó szám között egy tartományon belül.
  • a lépés nem lehet 0. Ha 0-ra van állítva, akkor ValueError: zero step for randrange()

a start nem lehet nagyobb, mint a stop, ha minden pozitív számot használ. Ha tévesen beállított start nagyobb, mint abba, kapsz egy ValueError: empty range for randrange()

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

Teljesítmény:

ValueError: empty range for randrange()

De, akkor is be induló értéke nagyobb, mint abba, ha a negatív lépés érték.

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

kimenet:

60

Szóval mit gondolsz?

szeretnék hallani rólad. Mit gondol erről a randint() és randrange()cikkről? Vagy talán kihagytam a két funkció egyik használatát. Másik út, tudassa velem, ha megjegyzést hagy az alábbiakban.

is, próbálja megoldani a következő gyakorlat, kvíz, hogy jobban megértsék a munka Véletlenszerű adatok Python.

  • Python véletlenszerű adatgenerációs gyakorlat a véletlenszerű adatgenerálási technikák gyakorlására és elsajátítására a Python-ban.
  • Python random data generation Quiz tesztelni a véletlen adat generációs fogalmak.