logo

Python atsitiktinis diapazonas()

Python atsitiktinis modulis leidžia generuoti atsitiktinius skaičius. Sugeneruoti skaičiai yra pseudoatsitiktinių skaičių seka, kuri yra pagrįsta naudojama funkcija. Atsitiktiniame modulyje atsitiktiniams skaičiams generuoti naudojamos įvairių tipų funkcijos, pvz atsitiktinis.random(), atsitiktinis.randint(), atsitiktinis.pasirinkimas(), atsitiktinis.randrange(pradžia, pabaiga, plotis) , ir daug daugiau.

Čia mes aptarsime randrange () funkcija atsitiktinis modulis. The randrange () Funkcija naudojama atsitiktiniam skaičiui tarp nurodyto diapazono parametre generuoti. Jis priima tris parametrus: pradžios numerį, pabaigos numerį ir plotį, kuris naudojamas norint praleisti skaičių diapazone.

Random.randrange() sintaksė

 random.randrange(start, stop[, width]) 

The random.randrange() funkcija grąžina atsitiktinį sveikąjį skaičių duotame diapazone, ty pradžia ir pabaiga. The random.randrange() funkcija naudoja tris parametrus kaip įvestį pradėti, sustoti , ir plotis . Iš šių trijų parametrų – du parametrai pradėti ir plotis yra neprivalomi.

  • The pradėti parametras yra pradinis arba apatinis sveikasis skaičius atsitiktiniame diapazone. Jei pradžios parametras parametre neperduotas, jo numatytoji reikšmė yra 0 (nulis).
  • A sustabdyti parametras yra paskutinis skaičius arba viršutinės ribos sveikasis skaičius atsitiktiniame diapazone.
  • The plotis parametras yra intervalas tarp kiekvieno skaičiaus atsitiktinėje sekoje. Šis parametras yra neprivalomas, o jei parametre pločio parametras neperduodamas, jis įgauna numatytąją reikšmę 1 (vienas).

The diapazonas (pradžia, pabaiga, plotis) generuojant atsitiktinį sveikąjį skaičių, funkcija neapima pabaigos parametro. The sustabdyti parametras yra išskirtinis , ir jis nėra generuojamas atsitiktiniu skaičiumi.

Pažvelkite į šią random.randrange(3, 30, 3) funkciją, kuri sugeneruos bet kokią atsitiktinio sveikojo skaičiaus reikšmę nuo 3 iki 30, pavyzdžiui, 3, 6, 9, 12, ...27. Tačiau ši funkcija generuojant atsitiktinį skaičių niekada neįtraukia 30.

Sugeneruoti atsitiktinį skaičių programoje visada buvo svarbu, o kasdieniame gyvenime ji gali būti naudojama kelis kartus realiuoju laiku. Pavyzdžiui, atsitiktinio skaičiaus generavimas ir siuntimas klientui kaip vienkartinis slaptažodis (vienkartinis slaptažodis), kad būtų galima atlikti saugią operaciją. Kitas atsitiktinio skaičiaus generavimo pavyzdys naudojamas žaidžiant ludo žaidimą atsitiktiniam kauliuko skaičiui generuoti.

1 pavyzdys: random.randrange() generuoja atsitiktinį sveikųjų skaičių duotame diapazone

Pažiūrėkime pavyzdį, kai tam tikrame diapazone generuojame atsitiktinį sveikąjį skaičių. Šiame pavyzdyje parodytos visos įvairios random.randrange() funkcijos formos.

 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) 

Išvestis:

Python atsitiktinis diapazonas()

2 pavyzdys: sugeneruokite n atsitiktinių sveikųjų skaičių diapazoną (daugelį).

Sugeneruokime atsitiktinį sveikąjį skaičių nuo 5 iki 100, kuris yra 5 diapazonas, pvz., 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) 

Išvestis:

Python atsitiktinis diapazonas ()

3 pavyzdys: sugeneruokite tam tikro ilgio atsitiktinį sveikąjį skaičių

Taip pat galite sugeneruoti tam tikro ilgio atsitiktinį sveikąjį skaičių. Jei norite sugeneruoti atsitiktinį skaičių, kurio ilgis yra 3, įveskite pradėti ir sustabdyti parametras in randrange () veikia kaip mažiausias 3 skaitmenų ilgio skaičius (100) ir mažiausias 4 skaitmenų ilgio skaičius (1000), nes generuoja atsitiktinį 3 skaitmenų skaičių nuo 100 iki 999, kai 4 skaitmenys (1000) neįtraukiami.

Pavyzdys: sugeneruokite atsitiktinį 3 skaitmenų skaičių naudodami 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) 

Išvestis:

 First random number of length 3 is: 813 Second random number of length 3 is: 770 

4 pavyzdys: sugeneruokite atsitiktinį neigiamą sveikąjį skaičių:

Pažiūrėkime pavyzdį, kuris generuoja atsitiktinį neigiamą sveikąjį skaičių nuo -50 iki -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) 

Išvestis:

 Random negative integer number between -50 to -10 Random negative integer number between -50 to -10 is: -43 

5 pavyzdys: sugeneruokite atsitiktinį teigiamą arba neigiamą sveikąjį skaičių

 import random number1 = random.randrange(-5, 5) print(number1) number2 = random.randrange(-5, 5) print(number2) 

Išvestis:

 -5 0 

Atkreipkite dėmesį, kad parametras pradėti ir sustabdyti , kuris perduodamas random.randrange() funkcija turi būti didėjančia tvarka, pvz atsitiktinis.randrange(5, 10) arba atsitiktinis.randrange(-20, -10) . The pradėti parametras visada turi būti mažesnis už sustabdyti parametras; kitu atveju ši funkcija generuoja klaidą kaip „Traceback (paskutinis skambutis paskutinis) ir padidinkite ValueError tuščią diapazoną randrange()“ .

Pavyzdžiui:

Pažvelkite į šį pavyzdį, kuriame mes pažeidžiame taisyklę išlaikydami pradėti parametras didesnis nei sustabdyti parametras in random.randrange() funkcija, kuri generuoja klaidos pranešimą kaip:

kaip veikia kompiuteris
 import random randomNumber = random.randrange(10,5) 

Išvestis:

Python atsitiktinis diapazonas()

Kai kurios kitos funkcijos Python'as atsitiktinis modulis kurie naudojami skaičiams generuoti atsitiktinai:

    pasirinkimas () randint () pavyzdys () Rūšiuoti ()

random.choice()

Python atsitiktinis modulis turi a pasirinkimas () funkcija, naudojama atsitiktiniam elementui pasirinkti iš sąrašo ar kitos sekos. A random.choice() funkcija naudojama norint grąžinti atsitiktinį elementą iš reikšmių sąrašo.

Ramdom.choice() sintaksė

 random.choice(sequence) 

arba

 random.choices(sequence, k=l) 

Čia parametras seka gali būti eilutė, sąrašas, eilutė ir random.choice() tik vienas atsitiktinis elementas.

Viduje random.choices() funkcija k yra grąžintinų elementų skaičius. Tarkime, kad neminome vertės k parametras random.choices() grąžina vieną elementą iš sekos arba sąrašo.

1 pavyzdys:

Šiame pavyzdyje mes pateikiame seką (sąrašą) kaip parametrą ir pateikiame vieną atsitiktinį elementą.

 import random listValue = [5,10,15,20,25,30] item = random.choice(listValue) print('random item from list is: ', item) 

Išvestis:

 random item from list is: 10 

2 pavyzdys:

Funkcija random.choices() dažniausiai naudojama atsitiktiniams elementams su įvairiomis galimybėmis grąžinti. Ši funkcija taip pat įvertina atsitiktinių pasirinkimų skaičių (k). Pavyzdžiui, norime išspausdinti 3 atsitiktinius filmų pavadinimus iš 5 filmų sąrašo.

 import random movieList = ['Matrix', 'Terminator', 'Black Panther', 'Avengers', 'Titanic'] randomMovies = random.choices(movieList, k=3) print('random movies from list are: ', randomMovies) 

Išvestis:

 random movies from list are: ['Avengers', 'Black Panther', 'Titanic'] 

random.randint()

Python random.randint() Funkcija naudojama generuoti atsitiktinį sveikąjį skaičių nurodytame diapazone.

Sintaksė:

 random.randint(start, stop) 

The random.randint() funkcijai reikia dviejų parametrų pradėti , kuris yra pradinis diapazonas, ir sustabdyti , kuris yra galutinis diapazonas. Generuojant atsitiktinį skaičių įtraukiami abu parametrai (pradėti, sustabdyti).

Atsitiktinių sveikųjų skaičių sąrašą generuojančio atsitiktinio.randint() pavyzdys

Šiame pavyzdyje bus sukurtas kelių atsitiktinių sveikųjų skaičių sąrašas naudojant funkciją randint(). Sukuriant 5 atsitiktinių sveikųjų skaičių nuo 1 iki 100 sąrašą, abi reikšmės yra imtinai.

 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) 

Išvestis:

 Printing list of 5 generated random numbers [65, 82, 3, 39, 40] 

Tačiau gali būti tokia galimybė atsitiktinis.randint() funkcija išvesties rezultate grąžina pasikartojantį skaičių. Norėdami išvengti atsitiktinio sveikojo skaičiaus pasikartojimo rezultate, naudokite Atsitiktinis pavyzdys() funkcija.

Atsitiktinis pavyzdys()

Aukščiau pateiktame pavyzdyje gali būti, kad random.randint() sugeneruoja atsitiktinio skaičiaus dublikatą iš sąrašo. Jei norite sugeneruoti unikalius atsitiktinius skaičius iš sąrašo, naudokite Atsitiktinis pavyzdys() funkcija.

The Atsitiktinis pavyzdys() funkcija generuoja unikalius elementus iš rinkinio, sąrašo ir kitų sekų. Python random.sample() funkcija leidžia atsitiktinai atrinkti daugiau nei vieną elementą iš sąrašo diapazono be pasikartojimo.

Random.sample() pavyzdys, skirtas generuoti atsitiktinius elementus iš sąrašo be dublikatų:

Šiame pavyzdyje mes sugeneruosime 10 atsitiktinių sveikųjų skaičių nuo 0 iki 100.

 import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100), 10) print(randomList) 

Išvestis:

 [15, 17, 16, 66, 34, 85, 71, 82, 97, 48] 

Jei norite sugeneruoti atsitiktinių skaičių sąrašą ir kiekvienas iš jų turi būti „n“ kartotinis, naudokite funkcijos range() žingsnio parametrą.

Pavyzdžiui, sugeneruoti 10 atsitiktinių sveikųjų skaičių, kurie yra 5 kartotiniai nuo diapazono nuo 0 iki 100, naudojant 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) 

Išvestis:

 [75, 40, 20, 55, 15, 10, 5, 90, 95, 70] 

Sąrašo rūšiavimas ()

Python Rūšiuoti () Funkcija naudojama rūšiuoti atsitiktinius sąrašo sveikuosius skaičius didėjančia tvarka (pagal numatytuosius nustatymus). Taip pat galime rūšiuoti sąrašo reikšmę mažėjančia tvarka, nurodydami jo tvarką atvirkštinis = Tiesa . Numatytoji reikšmė atvirkščiai yra Netiesa .

1 pavyzdys: sort() sąrašo elementų rūšiavimas didėjančia tvarka

Šiame pavyzdyje mes sugeneruosime atsitiktinį 5 skaičių sąrašą nuo 50 iki 100, kurių plotis yra 5 ir surūšiuosime juos naudodami Rūšiuoti () funkcija.

 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) 

Išvestis:

 Before sorting random integers list [90, 80, 60, 55, 85] After sorting random integers list [55, 60, 80, 85, 90] 

2 pavyzdys: sort() rūšiuoti sąrašo elementus mažėjančia tvarka

Šiame pavyzdyje sąrašo elementus surūšiuosime mažėjančia tvarka naudodami 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) 

Išvestis:

 Before sorting random integers list [70, 50, 80, 90, 85] After sorting random integers list [90, 85, 80, 70, 50]