Python náhodný modul umožňuje generovanie náhodných čísel. Vygenerované čísla sú postupnosťou pseudonáhodných čísel, ktoré vychádzajú z použitej funkcie. Na generovanie náhodných čísel sa v náhodnom module používajú rôzne typy funkcií, ako napr random.random(), random.randint(), random.choice(), random.randrange(start, stop, width) , a mnoho ďalších.
Tu budeme diskutovať o randrange() funkciu náhodný modul. The randrange() funkcia sa používa na generovanie náhodného čísla medzi zadaným rozsahom v jeho parametri. Akceptuje tri parametre: počiatočné číslo, číslo zastávky a šírku, ktorá sa používa na preskočenie čísla v rozsahu.
Syntax random.randrange()
random.randrange(start, stop[, width])
The random.randrange() funkcia vráti náhodné celé číslo v rámci daného rozsahu, t.j. štart a stop. The random.randrange() funkcia berie ako vstup tri parametre štart stop a šírka . Z týchto troch parametrov dva parametre začať a šírka sú voliteľné.
- The začať parameter je počiatočné alebo spodné limitné celé číslo v náhodnom rozsahu. Ak v parametri nie je zadaný štartovací parameter, má predvolenú hodnotu 0 (nulu).
- A zastaviť parameter je posledné číslo alebo horná hranica celého čísla v náhodnom rozsahu.
- The šírka parameter je rozsah medzi každým číslom v náhodnom poradí. Tento parameter je voliteľný a ak parameter width nie je odovzdaný v parametri, má predvolenú hodnotu 1 (jedna).
The randrange (začiatok, koniec, šírka) funkcia nezahŕňa koncový parameter pri generovaní náhodného celého čísla. The zastaviť parameter je exkluzívne a nevygeneruje sa v náhodnom čísle.
Pozrite sa na túto funkciu random.randrange(3, 30, 3), ktorá vygeneruje akúkoľvek náhodnú celočíselnú hodnotu od 3 do 30, napríklad 3, 6, 9, 12, …27. Táto funkcia však nikdy nezahŕňa 30 pri generovaní náhodného čísla.
Generovanie náhody v aplikácii bolo vždy dôležité a má niekoľko použití v reálnom čase v každodennom živote. Napríklad vygenerovanie a odoslanie náhodného čísla zákazníkovi ako OTP (jednorazové heslo) na uskutočnenie bezpečnej transakcie. Ďalší príklad generovania náhodného čísla sa používa pri hraní hry Ludo na generovanie náhodného čísla kocky.
Príklady 1: random.randrange() generuje náhodné celé číslo v rámci daného rozsahu
Pozrime sa na príklad, kde generujeme náhodné celé číslo v danom rozsahu. Tento príklad ukazuje všetky rôzne formy funkcie random.randrange().
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)
Výkon:
Príklad 2: Vygenerujte rozsah náhodných celých čísel (násobok) n
Vygenerujme náhodné celé číslo od 5 do 100, čo je rozsah 5, napríklad 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)
Výkon:
Príklad 3: Vygenerujte náhodné celé číslo špecifickej dĺžky
Môžete tiež vygenerovať náhodné celé číslo určitej dĺžky. Ak chcete vygenerovať náhodné číslo dĺžky 3, zadajte začať a zastaviť parameter v randrange() funguje ako najmenšie číslo s dĺžkou 3 číslic (100) a najmenšie číslo s dĺžkou 4 číslic (1000), pretože generuje náhodné číslo s veľkosťou 3 číslic od 100 do 999, kde sú vylúčené 4 číslice (1000).
Príklad: Vygenerujte náhodné 3-miestne číslo pomocou random.randrange()
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)
Výkon:
First random number of length 3 is: 813 Second random number of length 3 is: 770
Príklad 4: Vygenerujte náhodné záporné celé číslo:
Pozrime sa na príklad, ktorý generuje náhodné záporné celé číslo medzi -50 až -10.
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)
Výkon:
Random negative integer number between -50 to -10 Random negative integer number between -50 to -10 is: -43
Príklad 5: Vygenerujte náhodné kladné alebo záporné celé číslo
import random number1 = random.randrange(-5, 5) print(number1) number2 = random.randrange(-5, 5) print(number2)
Výkon:
-5 0
Všimnite si, že parameter začať a zastaviť , ktorý sa odovzdáva random.randrange() funkcia musí byť v rastúcom poradí, ako napr random.randrange(5, 10) alebo random.randrange(-20, -10) . The začať parameter musí byť vždy menší ako zastaviť parameter; v opačnom prípade táto funkcia vygeneruje chybu ako 'Spätné sledovanie (posledný posledný hovor) a zvýšenie ValueError prázdny rozsah pre randrange()' .
Napríklad:
Pozrite sa na tento príklad, v ktorom porušujeme pravidlo prekročením začať parameter väčší ako zastaviť parameter v random.randrange() funkcia, ktorá generuje chybové hlásenie ako:
base64 dekódovať v js
import random randomNumber = random.randrange(10,5)
Výkon:
Niektoré z ďalších funkcií Pythonov náhodný modul ktoré sa používajú na generovanie čísel náhodne, sú:
random.choice()
Python náhodný modul má a výber() funkcia používaná na výber náhodného prvku zo zoznamu alebo inej postupnosti. A random.choice() funkcia sa používa na vrátenie náhodného prvku zo zoznamu hodnôt.
Syntax ramdom.choice()
random.choice(sequence)
alebo
random.choices(sequence, k=l)
Tu je parameter sekvencie môže byť reťazec, zoznam, n-tica a random.choice() iba jeden náhodný prvok.
V random.choices() funkciu k je počet prvkov, ktoré sa majú vrátiť. Predpokladajme, že neuvádzame hodnotu pre k parameter the random.choices() vráti jednu položku zo sekvencie alebo zoznamu.
Príklad 1:
V tomto príklade poskytujeme sekvenciu (zoznam) ako parameter a vraciame jeden náhodný prvok.
import random listValue = [5,10,15,20,25,30] item = random.choice(listValue) print('random item from list is: ', item)
Výkon:
random item from list is: 10
Príklad 2:
Funkcia random.choices() sa väčšinou používa na vrátenie náhodných prvkov s rôznymi možnosťami. Táto funkcia tiež berie váhu (k) počtu náhodných volieb. Napríklad chceme vytlačiť 3 náhodné názvy filmov zo zoznamu 5 filmov.
import random movieList = ['Matrix', 'Terminator', 'Black Panther', 'Avengers', 'Titanic'] randomMovies = random.choices(movieList, k=3) print('random movies from list are: ', randomMovies)
Výkon:
random movies from list are: ['Avengers', 'Black Panther', 'Titanic']
random.randint()
Python random.randint() funkcia sa používa na generovanie náhodného celého čísla v zadanom rozsahu.
Syntax:
random.randint(start, stop)
The random.randint() funkcia má dva parametre začať , čo je počiatočný rozsah, a zastaviť , čo je koncový rozsah. Oba parametre (štart, stop) sú zahrnuté pri generovaní náhodného čísla.
Príklad random.randint() generovania zoznamu náhodných celých čísel
Tento príklad vytvorí zoznam viacerých náhodných celých čísel pomocou funkcie randint(). Generuje sa zoznam 5 náhodných celých čísel medzi 1 a 100, pričom obe hodnoty sú vrátane.
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)
Výkon:
Printing list of 5 generated random numbers [65, 82, 3, 39, 40]
Môže však existovať možnosť, že náhodný.randint() funkcia vráti duplicitné číslo vo výstupnom výsledku. Ak sa chcete vyhnúť duplicitnému náhodnému celému číslu vo výsledku, použite náhodná vzorka() funkciu.
náhodná vzorka()
Vo vyššie uvedenom príklade môže existovať možnosť, že random.randint() vygeneruje duplicitné náhodné číslo zo zoznamu. Ak chcete generovať jedinečné náhodné čísla zo zoznamu, použite náhodná vzorka() funkciu.
The náhodná vzorka() funkcia generuje jedinečné prvky z množiny, zoznamu a iných sekvencií. Funkcia random.sample() Pythonu umožňuje náhodné vzorkovanie viac ako jedného prvku v rozsahu zo zoznamu bez duplikácie.
Príklad random.sample() na generovanie náhodných prvkov zo zoznamu bez duplikátov:
V tomto príklade vygenerujeme 10 náhodných celých čísel z rozsahu 0 až 100.
import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100), 10) print(randomList)
Výkon:
[15, 17, 16, 66, 34, 85, 71, 82, 97, 48]
Ak chcete vygenerovať zoznam náhodných čísel a každé z nich musí byť násobkom 'n', použite parameter step funkcie range().
Napríklad vygenerovanie 10 náhodných celých čísel, ktoré sú násobkom 5 z rozsahu 0 až 100, pomocou random.sample(range(0, 100, 5), 10).
import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100, 5), 10) print(randomList)
Výkon:
[75, 40, 20, 55, 15, 10, 5, 90, 95, 70]
Zoradiť zoznam()
Python zoradiť () funkcia sa používa na triedenie náhodných celých čísel v zozname vo vzostupnom poradí (štandardne). Hodnotu zoznamu môžeme zoradiť aj v zostupnom poradí zadaním jej poradia obrátene = pravda . Predvolená hodnota obrátene je Nepravdivé .
Príklad 1: sort() triedenie prvkov zoznamu vo vzostupnom poradí
V tomto príklade vygenerujeme náhodný zoznam 5 čísel v rozsahu 50 až 100 so šírkou 5 a zoradíme ich pomocou zoradiť () funkciu.
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)
Výkon:
Before sorting random integers list [90, 80, 60, 55, 85] After sorting random integers list [55, 60, 80, 85, 90]
Príklad 2: sort() triedenie prvkov zoznamu v zostupnom poradí
V tomto príklade zoradíme prvky zoznamu v zostupnom poradí pomocou 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)
Výkon:
Before sorting random integers list [70, 50, 80, 90, 85] After sorting random integers list [90, 85, 80, 70, 50]