A Python véletlen modul lehetővé teszi véletlen számok generálását. A generált számok pszeudo-véletlen számok sorozata, amelyek a használt függvényen alapulnak. Különféle típusú függvényeket használnak egy véletlenszerű modulban véletlen számok generálására, mint pl random.random(), random.randint(), random.choice(), random.randrange(kezdet, stop, szélesség) , és még sok más.
Itt megbeszéljük a randrange() funkciója véletlen modult. A randrange() A függvény véletlen számot generál a paraméterében megadott tartomány között. Három paramétert fogad el: kezdőszámot, leállítási számot és szélességet, amely a tartományban lévő számok átugrására szolgál.
A random.randrange() szintaxisa
random.randrange(start, stop[, width])
A random.randrange() függvény egy véletlenszerű egész számot ad vissza az adott tartományon belül, azaz a start és a stop. A random.randrange() függvény három paramétert vesz be bemenetként indul, megáll , és szélesség . Ebből a három paraméterből a két paraméter Rajt és szélesség nem kötelezőek.
- A Rajt paraméter egy kezdő vagy alsó határérték egész szám egy véletlenszerű tartományban. Ha a start paraméter nem kerül átadásra a paraméterben, akkor az alapértelmezett 0 (nulla) értéket vesz fel.
- A állj meg paraméter az utolsó szám vagy felső határ egész szám egy véletlenszerű tartományban.
- A szélesség A paraméter egy tartomány a véletlen sorrendben szereplő egyes számok között. Ez a paraméter nem kötelező, és ha a szélesség paraméter nem kerül átadásra a paraméterben, akkor alapértelmezett értéke 1 (egy).
A tartomány (kezdet, leállítás, szélesség) függvény nem tartalmazza a végparamétert a véletlenszerű egész szám generálásakor. A állj meg paraméter az kizárólagos , és nem véletlenszerűen jön létre.
Nézd meg ezt a random.randrange(3, 30, 3) függvényt, amely bármilyen véletlenszerű egész számot generál 3 és 30 között, például 3, 6, 9, 12, …27. De ez a függvény soha nem tartalmaz 30-at, miközben véletlen számot generál.
A véletlenszerű véletlen generálása egy alkalmazásban mindig is fontos volt, és ennek számos valós idejű felhasználása van a mindennapi életben. Például véletlen szám generálása és elküldése az ügyfélnek OTP-ként (egyszeri jelszóként) a biztonságos tranzakció végrehajtásához. Egy másik példa a véletlen szám generálására a ludo játék során véletlenszerű kockaszám generálására.
1. példa: random.randrange() véletlenszerű egész számot generál az adott tartományon belül
Lássunk egy példát, ahol egy véletlenszerű egész számot generálunk egy adott tartományon belül. Ez a példa bemutatja a random.randrange() függvény összes különböző formáját.
import random print('Generating random number within a given range ') # Random number between 0 and 29 number1 = random.randrange(30) print('Random integer: ', number1) # Random number between 10 and 29 number2 = random.randrange(10, 30) print('Random integer: ', number2) # Random number between 25 and 200 divisible by 5 number3 = random.randrange(25, 201, 5) print('Random integer: ', number3)
Kimenet:
2. példa: Hozzon létre egy véletlenszerű egész számtartományt (többszörös) n-ből
Állítsuk elő a véletlenszerű egész számot 5 és 100 között, ami egy 5-ös tartomány, például 5, 10, 25, …, 90, 95.
import random #print 'Random number range (multiple) of 5' number = random.randrange(5, 100, 5) print('Random number range (multiple) of 5 is ', number)
Kimenet:
3. példa: Adott hosszúságú véletlenszerű egész szám generálása
Adott hosszúságú véletlenszerű egész számot is generálhat. Ha 3 hosszúságú véletlenszámot szeretne generálni, adja meg a Rajt és állj meg paraméter be randrange() a legkisebb 3 jegyű szám (100) és a legkevesebb 4 jegyű szám (1000), mert véletlenszerű számot generál 100 és 999 között, ahol a 4 számjegy (1000) nincs kizárva.
Példa: Hozzon létre egy 3 jegyű véletlenszámot a random.randrange() segítségével
import random number1 = random.randrange(100, 1000) print('First random number of length 3 is: ', number1) number2 = random.randrange(100, 1000) print('Second random number of length 3 is: ', number2)
Kimenet:
First random number of length 3 is: 813 Second random number of length 3 is: 770
4. példa: Véletlenszerű negatív egész szám létrehozása:
Nézzünk egy példát, amely véletlenszerű negatív egész számot generál -50 és -10 között.
import random randomNagativeInteger = random.randrange(-50, -10) print('Random negative integer number between -50 to -10') print('Random negative integer number between -50 to -10 is: ',randomNagativeInteger)
Kimenet:
Random negative integer number between -50 to -10 Random negative integer number between -50 to -10 is: -43
5. példa: Véletlenszerű pozitív vagy negatív egész szám generálása
import random number1 = random.randrange(-5, 5) print(number1) number2 = random.randrange(-5, 5) print(number2)
Kimenet:
-5 0
Vegye figyelembe, hogy a paraméter Rajt és állj meg , amely be van adva random.randrange() függvénynek növekvő sorrendben kell lennie, mint pl random.randrange(5, 10) vagy random.randrange(-20, -10) . A Rajt paraméter mindig kisebb legyen, mint a állj meg paraméter; ellenkező esetben ez a függvény hibát generál, mint 'Traceback (legutóbbi hívás utolsó) és ValueError üres tartomány emelése a randrange() esetén' .
Például:
Nézze meg ezt a példát, amelyben megsértjük a szabályt azzal, hogy átadjuk a Rajt paraméter nagyobb, mint a állj meg paraméter be random.randrange() függvény, amely a következő hibaüzenetet generálja:
linkedlist java
import random randomNumber = random.randrange(10,5)
Kimenet:
Néhány egyéb funkciója Python véletlen modul amelyek véletlenszerű számok generálására szolgálnak:
random.choice()
Piton véletlen modul rendelkezik a választás() függvény egy véletlenszerű elem kiválasztására szolgál egy listából vagy más sorozatból. A random.choice() A függvény egy véletlenszerű elemet ad vissza az értéklistából.
A ramdom.choice() szintaxisa
random.choice(sequence)
vagy
random.choices(sequence, k=l)
Itt a paraméter sorrend lehet string, lista, sor és random.choice() csak egyetlen véletlenszerű elem.
Ban,-ben random.choices() funkció k a visszaküldendő elemek száma. Tegyük fel, hogy nem említjük meg az értékét k paraméter a random.choices() egyetlen elemet ad vissza a sorozatból vagy listából.
1. példa:
Ebben a példában a sorozatot (listát) adjuk meg paraméterként, és egyetlen véletlenszerű elemet adunk vissza.
import random listValue = [5,10,15,20,25,30] item = random.choice(listValue) print('random item from list is: ', item)
Kimenet:
random item from list is: 10
2. példa:
A random.choices() függvényt leggyakrabban véletlenszerű elemek visszaadására használják különféle lehetőségekkel. Ez a függvény a véletlenszerű választások számát is figyelembe veszi (k). Például 3 véletlenszerű film nevét szeretnénk kinyomtatni az 5 filmet tartalmazó listából.
import random movieList = ['Matrix', 'Terminator', 'Black Panther', 'Avengers', 'Titanic'] randomMovies = random.choices(movieList, k=3) print('random movies from list are: ', randomMovies)
Kimenet:
random movies from list are: ['Avengers', 'Black Panther', 'Titanic']
random.randint()
Piton random.randint() függvény egy véletlenszerű egész szám generálására szolgál a megadott tartományon belül.
Szintaxis:
random.randint(start, stop)
A random.randint() függvény két paramétert vesz fel Rajt , ami egy kezdő tartomány, és állj meg , ami egy végtartomány. Mindkét paraméter (start, stop) szerepel a véletlen szám generálásakor.
Példa arra, hogy a random.randint() véletlenszerű egész számok listáját generálja
Ez a példa több véletlenszerű egész számot tartalmazó listát hoz létre a randint() függvény használatával. Egy 1 és 100 közötti véletlenszerű egész számból álló lista létrehozása mindkét értéket magában foglalja.
import random randomListValue = [] # specifing length of list equal to 5 for i in range(0, 5): # generates random numbers from 1 to 100 randomListValue.append(random.randint(1, 100)) print('Printing list of 5 generated random numbers') print(randomListValue)
Kimenet:
Printing list of 5 generated random numbers [65, 82, 3, 39, 40]
Lehetséges azonban, hogy a random.randint() függvény ismétlődő számot ad vissza a kimeneti eredményben. A véletlenszerű egész szám ismétlődésének elkerülése érdekében az eredményben használja a véletlenszerű példa() funkció.
véletlenszerű példa()
A fenti példában fennáll annak a lehetősége random.randint() generálja a duplikált véletlenszámot a listából. Ha egyedi véletlen számokat szeretne generálni egy listából, használja a véletlenszerű példa() funkció.
A véletlenszerű példa() függvény egyedi elemeket állít elő halmazból, listából és egyéb sorozatokból. A Python random.sample() függvénye lehetővé teszi egynél több elem véletlenszerű mintavételét a listából egy tartományon belül duplikálás nélkül.
Példa egy random.sample()-ra, amellyel véletlenszerű elemeket generálhat egy listából ismétlődések nélkül:
Ebben a példában 10 véletlenszerű egész számot generálunk 0 és 100 között.
import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100), 10) print(randomList)
Kimenet:
[15, 17, 16, 66, 34, 85, 71, 82, 97, 48]
Ha véletlen számok listáját szeretné létrehozni, és mindegyiknek 'n' többszörösének kell lennie, akkor használja a range() függvény lépésparaméterét.
Például 10 véletlenszerű egész szám generálása, amelyek 5 többszörösei a 0 és 100 közötti tartományban a random.sample(tartomány(0, 100, 5), 10 használatával).
import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100, 5), 10) print(randomList)
Kimenet:
[75, 40, 20, 55, 15, 10, 5, 90, 95, 70]
Lista rendezés()
A Python fajta() függvény a lista véletlenszerű egész számainak növekvő sorrendbe rendezésére szolgál (alapértelmezés szerint). A lista értékét a sorrend megadásával csökkenő sorrendbe is rendezhetjük fordított = igaz . Az alapértelmezett értéke fordított van Hamis .
1. példa: sort() listaelemek rendezése növekvő sorrendben
Ebben a példában 5 számból álló véletlenszerű listát generálunk 50 és 100 közötti tartományban 5 szélességben, és sorba rendezzük őket fajta() funkció.
import random randomList = random.sample(range(50, 100, 5), 5) print('Before sorting random integers list') print(randomList) # sort the list ascending order by default randomList.sort() print('After sorting random integers list') print(randomList)
Kimenet:
Before sorting random integers list [90, 80, 60, 55, 85] After sorting random integers list [55, 60, 80, 85, 90]
2. példa: sort() listaelemek rendezése csökkenő sorrendben
Ebben a példában a listaelemeket csökkenő sorrendbe rendezzük a használatával randomList.sort(reverse=True) .
import random randomList = random.sample(range(50, 100, 5), 5) print('Before sorting random integers list') print(randomList) # sort the list descending order randomList.sort(reverse=True) print('After sorting random integers list') print(randomList)
Kimenet:
Before sorting random integers list [70, 50, 80, 90, 85] After sorting random integers list [90, 85, 80, 70, 50]