Питонът случаен модул позволява генериране на произволни числа. Генерираните числа са поредица от псевдослучайни числа, които се основават на използваната функция. Има различни видове функции, използвани в случаен модул за генериране на произволни числа, като напр random.random(), random.randint(), random.choice(), random.randrange(старт, стоп, ширина) , и много други.
Тук ще обсъдим randrange() функция на случаен модул. The randrange() функцията се използва за генериране на произволно число между посочения диапазон в нейния параметър. Приема три параметъра: начален номер, стоп номер и ширина, която се използва за пропускане на число в диапазона.
Синтаксис на random.randrange()
random.randrange(start, stop[, width])
The random.randrange() функцията връща произволно цяло число в даден диапазон, т.е. стартиране и спиране. The random.randrange() функцията приема три параметъра като вход стартиране, спиране , и ширина . От тези три параметъра двата параметъра започнете и ширина не са задължителни.
- The започнете параметърът е начално или долно ограничено цяло число в произволен диапазон. Ако началният параметър не е предаден в параметър, той приема стойност по подразбиране 0 (нула).
- А Спри се параметърът е последното число или горната граница на цяло число в произволен диапазон.
- The ширина параметърът е диапазон между всяко число в произволната последователност. Този параметър е незадължителен и ако параметърът за ширина не е предаден в параметъра, той приема стойност по подразбиране 1 (едно).
The рандиапазон (начало, стоп, ширина) функцията не включва крайния параметър, докато генерира произволно цяло число. The Спри се параметър е изключителен и не се генерира в произволно число.
Погледнете тази функция random.randrange(3, 30, 3), която ще генерира произволно цяло число между 3 и 30 като 3, 6, 9, 12, …27. Но тази функция никога не включва 30, докато генерира произволно число.
Генерирането на случаен принцип в приложение винаги е било важно и има няколко приложения в реално време в ежедневието. Например генериране и изпращане на случаен номер до клиент като OTP (еднократна парола) за извършване на безопасна транзакция. Друг пример за генериране на произволно число се използва, докато играете на лудо играта, за да генерирате произволно число на зарове.
Примери 1: random.randrange() генерира произволно цяло число в дадения диапазон
Нека видим пример, в който генерираме произволно цяло число в даден диапазон. Този пример показва всички различни форми на функцията 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)
Изход:
Пример 2: Генериране на случаен диапазон от цели числа (кратно) на n
Нека генерираме произволно цяло число между 5 и 100, което е диапазон от 5 като 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)
Изход:
Пример 3: Генериране на произволно цяло число с определена дължина
Можете също така да генерирате произволно цяло число с определена дължина. Ако искате да генерирате произволно число с дължина 3, въведете започнете и Спри се параметър в randrange() функционира като най-малко число с дължина 3 цифри (100) и най-малко число с дължина 4 цифри (1000), тъй като генерира произволно число от 3 цифри от 100 до 999, където 4 цифри (1000) са изключени.
Пример: Генерирайте произволно число от 3 цифри с помощта на 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)
Изход:
First random number of length 3 is: 813 Second random number of length 3 is: 770
Пример 4: Генериране на произволно отрицателно цяло число:
Нека видим пример, който генерира произволно отрицателно цяло число между -50 до -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)
Изход:
Random negative integer number between -50 to -10 Random negative integer number between -50 to -10 is: -43
Пример 5: Генериране на произволно положително или отрицателно цяло число
import random number1 = random.randrange(-5, 5) print(number1) number2 = random.randrange(-5, 5) print(number2)
Изход:
-5 0
Имайте предвид, че параметърът започнете и Спри се , който се предава в random.randrange() функцията трябва да е във възходящ ред, като напр random.randrange(5, 10) или random.randrange(-20, -10) . The започнете винаги да е по-малък от Спри се параметър; в противен случай тази функция генерира грешка като „Проследяване (последното последно извикване) и повишаване на ValueError празен диапазон за randrange()“ .
Например:
Вижте този пример, в който нарушаваме правилото, като предаваме започнете параметър по-голям от Спри се параметър в random.randrange() функция, която генерира съобщение за грешка като:
тримесечие в бизнеса
import random randomNumber = random.randrange(10,5)
Изход:
Някои от другите функции на на Python случаен модул които се използват за произволно генериране на числа са:
random.choice()
Python случаен модулът има a избор() функция, използвана за избор на произволен елемент от списък или друга последователност. А random.choice() функцията се използва за връщане на произволен елемент от списъка със стойности.
Синтаксис на ramdom.choice()
random.choice(sequence)
или
random.choices(sequence, k=l)
Ето параметъра последователност може да бъде низ, списък, кортеж и random.choice() само един случаен елемент.
В random.choices() функция к е броят на елементите, които трябва да бъдат върнати. Да предположим, че не споменаваме стойността за к параметър на random.choices() връща единичен елемент от последователността или списъка.
Пример 1:
В този пример предоставяме последователност (списък) като параметър и връщаме един случаен елемент.
import random listValue = [5,10,15,20,25,30] item = random.choice(listValue) print('random item from list is: ', item)
Изход:
random item from list is: 10
Пример 2:
Функцията random.choices() се използва най-вече за връщане на произволни елементи с различни възможности. Тази функция също взема тегло (k) на броя произволни избори. Например, искаме да отпечатаме имена на 3 произволни филма от списък с 5 филма.
import random movieList = ['Matrix', 'Terminator', 'Black Panther', 'Avengers', 'Titanic'] randomMovies = random.choices(movieList, k=3) print('random movies from list are: ', randomMovies)
Изход:
random movies from list are: ['Avengers', 'Black Panther', 'Titanic']
random.randint()
Python random.randint() функцията се използва за генериране на произволно цяло число в посочения диапазон.
Синтаксис:
random.randint(start, stop)
The random.randint() функцията приема два параметъра започнете , което е начален диапазон, и Спри се , което е краен диапазон. И двата параметъра (старт, стоп) са включени при генериране на произволно число.
Пример за random.randint() генериращ списък от произволно цяло число
Този пример ще създаде списък от множество произволни цели числа с помощта на функцията randint(). Генериране на списък от 5 произволни цели числа между 1 и 100, като и двете стойности включват.
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)
Изход:
Printing list of 5 generated random numbers [65, 82, 3, 39, 40]
Възможно е обаче да има такава възможност random.randint() функцията връща дублирано число в изходния резултат. За да избегнете дублиращото се произволно цяло число в резултат, използвайте random.sample() функция.
random.sample()
В горния пример може да има такава възможност random.randint() генерира дублиращото произволно число от списъка. Ако искате да генерирате уникални произволни числа от списък, използвайте random.sample() функция.
The random.sample() функция генерира уникални елементи от набор, списък и други последователности. Функцията random.sample() на Python позволява произволно вземане на проби от повече от един елемент в диапазон от списъка без дублиране.
Пример за random.sample() за генериране на произволни елементи от списък без дубликати:
В този пример ще генерираме 10 произволни цели числа от диапазона от 0 до 100.
import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100), 10) print(randomList)
Изход:
[15, 17, 16, 66, 34, 85, 71, 82, 97, 48]
Ако искате да генерирате списък от произволни числа и всяко от тях трябва да е кратно на 'n', тогава използвайте параметъра стъпка на функцията range().
Например генериране на 10 произволни цели числа, които са кратни на 5 от диапазона от 0 до 100 с помощта на 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)
Изход:
[75, 40, 20, 55, 15, 10, 5, 90, 95, 70]
Сортиране по списък()
Питонът вид() се използва за сортиране на произволни цели числа от списъка във възходящ ред (по подразбиране). Можем също да сортираме стойността на списъка в низходящ ред, като посочим нейния ред обратно = вярно . Стойността по подразбиране на обратен е Невярно .
Пример 1: sort() сортира елементи от списък във възходящ ред
В този пример ще генерираме произволен списък от 5 числа в диапазон от 50 до 100 с ширина 5 и ще ги сортираме с помощта на вид() функция.
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)
Изход:
Before sorting random integers list [90, 80, 60, 55, 85] After sorting random integers list [55, 60, 80, 85, 90]
Пример 2: sort() сортира елементи от списъка в низходящ ред
В този пример ще сортираме елементите на списъка в низходящ ред, използвайки 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)
Изход:
Before sorting random integers list [70, 50, 80, 90, 85] After sorting random integers list [90, 85, 80, 70, 50]