Programming में कई बार हमें ऐसी Values की आवश्यकता होती है जो हर बार अलग-अलग प्राप्त हों। जैसे किसी Game में Random Number, Lottery में Number Selection, Quiz में Random Question, Password Generation या किसी List में से Random Item चुनना।
Python में ऐसे कार्यों के लिए random Module का उपयोग किया जाता है।
random Python की Standard Library का हिस्सा है, इसलिए इसे अलग से Install करने की आवश्यकता नहीं होती।
Python का random Module विभिन्न प्रकार की Pseudo-Random Values Generate करने के लिए Functions प्रदान करता है।
इसे उपयोग करने के लिए पहले Import करना होता है—
import random
ध्यान दें: ये Values सामान्य Programming और Simulation के लिए उपयोगी हैं। Security-sensitive Passwords, Tokens आदि के लिए random के बजाय Python का secrets Module अधिक उपयुक्त है।
import random
print(random.random())
Output उदाहरण:
0.583421739
हर बार अलग Value मिल सकती है।
random.random() 0.0 से कम और 1.0 से कम के बीच एक Random Floating-Point Number देता है।
random.random()
import random
print(random.random())
Possible Output:
0.724563
randint(a, b) दिए गए दोनों Limits सहित एक Random Integer देता है।
random.randint(a, b)
import random
print(random.randint(1, 10))
Output:
7
यहाँ 1 से 10 तक कोई भी Integer आ सकता है।
महत्वपूर्ण: randint(1, 10) में 1 और 10 दोनों शामिल होते हैं।
randrange() किसी दिए गए Range से Random Integer चुनता है।
import random
print(random.randrange(1, 10))
यहाँ 1 शामिल है लेकिन 10 शामिल नहीं है।
संभावित Values:
1, 2, 3, 4, 5, 6, 7, 8, 9
randint() और randrange() में अंतर
|
randint() |
randrange() |
|
दोनों Endpoints शामिल |
Stop Value शामिल नहीं |
|
randint(1,10) → 1 से 10 |
randrange(1,10) → 1 से 9 |
|
Integer देता है |
Range से Integer चुनता है |
import random
print(random.randrange(0, 20, 2))
यह केवल Even Numbers में से Random Number चुनेगा:
0, 2, 4, 6, ..., 18
choice() किसी Sequence से एक Random Element चुनता है।
import random
colors = ["Red", "Green", "Blue", "Yellow"]
print(random.choice(colors))
Output उदाहरण:
Blue
import random
name = "PYTHON"
print(random.choice(name))
Output उदाहरण:
T
choices() Sequence से एक या अधिक Elements चुनता है और इसमें Elements दोबारा चुने जा सकते हैं।
import random
numbers = [10, 20, 30, 40, 50]
print(random.choices(numbers, k=3))
संभावित Output:
[20, 50, 20]
यहाँ 20 दोबारा आ सकता है।
sample() Sequence से कई Unique Elements चुनता है।
इसमें सामान्यतः एक ही Element को दोबारा Select नहीं किया जाता।
import random
numbers = [10, 20, 30, 40, 50]
print(random.sample(numbers, k=3))
संभावित Output:
[40, 10, 30]
यहाँ सभी चुने गए Elements अलग हैं।
choice(), choices() और sample() में अंतर
|
Function |
Selection |
|
choice() |
एक Element |
|
choices() |
कई Elements, Repetition संभव |
|
sample() |
कई Unique Elements |
shuffle() किसी Mutable Sequence, जैसे List, के Elements का Order Randomly बदल देता है।
import random
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)
संभावित Output:
[3, 1, 5, 2, 4]
shuffle() List को in-place बदलता है और कोई नई Shuffled List Return नहीं करता।
गलत तरीका:
result = random.shuffle(numbers)
result में None मिलेगा।
uniform(a, b) दो Numbers के बीच एक Random Floating-Point Number देता है।
import random
print(random.uniform(1, 10))
संभावित Output:
6.47291
seed() Random Number Generator की Initial State निर्धारित करता है।
इसका उपयोग Testing और Reproducible Results के लिए किया जाता है।
import random
random.seed(10)
print(random.randint(1, 100))
print(random.randint(1, 100))
उसी Program में वही Seed दोबारा इस्तेमाल करने पर Random Sequence दोहराई जा सकती है।
यह दिए गए Number of Bits के आधार पर एक Non-negative Integer Generate करता है।
import random
print(random.getrandbits(8))
यह 0 से 255 के बीच कोई Integer दे सकता है।
Random Module की सहायता से Dice बनाया जा सकता है।
import random
dice = random.randint(1, 6)
print("Dice:", dice)
Possible Output:
Dice: 4
import random
result = random.choice(["Heads", "Tails"])
print(result)
Possible Output:
Heads
import random
students = ["Rahul", "Amit", "Neha", "Pooja", "Ravi"]
selected = random.choice(students)
print("Selected Student:", selected)
import random
questions = [
"What is Python?",
"What is a Variable?",
"What is a Function?",
"What is a List?"
]
question = random.choice(questions)
print(question)
import random
number = random.randint(1, 10)
guess = int(input("Guess a number from 1 to 10: "))
if guess == number:
print("Correct Guess!")
else:
print("Wrong Guess!")
print("Correct Number:", number)
Learning/demo purpose के लिए Characters में से Random Selection किया जा सकता है:
import random
import string
characters = string.ascii_letters + string.digits
password = ''.join(random.choices(characters, k=8))
print(password)
वास्तविक Authentication या Security Tokens के लिए secrets Module का उपयोग करना बेहतर है।
import random
otp = random.randint(100000, 999999)
print("OTP:", otp)
यह केवल Learning/Demo के लिए है। वास्तविक Security OTP के लिए secrets या उचित Authentication System का उपयोग करना चाहिए।
import random
numbers = [10, 20, 30, 40, 50]
random.shuffle(numbers)
print(numbers)
Practical Program – Lucky Winner
import random
participants = [
"Rahul",
"Amit",
"Neha",
"Pooja",
"Ravi"
]
winner = random.choice(participants)
print("Winner:", winner)
Practical Program – 5 Unique Random Numbers
import random
numbers = list(range(1, 21))
result = random.sample(numbers, 5)
print(result)
यह 1 से 20 के बीच 5 अलग-अलग Numbers देगा।
Practical Program – Random Even Number
import random
number = random.randrange(2, 21, 2)
print(number)
यह 2 से 20 के बीच कोई Random Even Number देगा।
Random Module के प्रमुख Functions
|
Function |
कार्य |
|
random() |
0.0 से 1.0 के बीच Float |
|
randint() |
Inclusive Random Integer |
|
randrange() |
Range से Random Integer |
|
choice() |
एक Random Element |
|
choices() |
कई Elements, Repetition संभव |
|
sample() |
Unique Elements |
|
shuffle() |
List का Order बदलना |
|
uniform() |
Random Float |
|
seed() |
Random Sequence को Reproduce करना |
|
getrandbits() |
दिए गए Bits से Integer |
import random
items = []
print(random.choice(items))
Empty Sequence में choice() करने पर IndexError हो सकता है।
sample() में अधिक Elements माँगना
import random
numbers = [1, 2, 3]
print(random.sample(numbers, 5))
यह Error देगा क्योंकि List में केवल 3 Elements हैं लेकिन 5 Unique Elements माँगे गए हैं।
- सामान्य Random Selection के लिए random Module का उपयोग करें।
- randint() में दोनों Limits शामिल होती हैं।
- randrange() में Stop Value शामिल नहीं होती।
- sample() Unique Selection के लिए उपयोग करें।
- shuffle() List को सीधे Modify करता है।
- Testing के दौरान Reproducible Results के लिए seed() उपयोगी है।
- Security-sensitive Random Values के लिए secrets Module का उपयोग करें।
परीक्षा की दृष्टि से महत्वपूर्ण तथ्य
- random Python Standard Library का Module है।
- random.random() 0.0 से 1.0 के बीच Float देता है।
- randint(a, b) में a और b दोनों शामिल होते हैं।
- randrange() में Stop Value शामिल नहीं होती।
- choice() एक Random Element चुनता है।
- choices() में Element Repeat हो सकता है।
- sample() Unique Elements चुनता है।
- shuffle() List को Random Order में बदलता है।
- uniform() Random Floating-Point Number देता है।
- seed() Reproducible Random Sequence के लिए उपयोगी है।
Frequently Asked Questions (FAQs)
प्रश्न 1. Python में Random Number कैसे Generate करें?
import random
print(random.randint(1, 100))
प्रश्न 2. List में से Random Item कैसे चुनें?
random.choice(list_name)
प्रश्न 3. List को Random Order में कैसे Arrange करें?
random.shuffle(list_name)
प्रश्न 4. choice() और sample() में क्या अंतर है?
choice() एक Element चुनता है, जबकि sample() कई Unique Elements चुन सकता है।
प्रश्न 5. randint(1, 10) में 10 शामिल होता है?
हाँ। randint() दोनों Endpoints को शामिल करता है।
- random() → Random Float
- randint() → Inclusive Random Integer
- randrange() → Range से Random Integer
- choice() → एक Random Item
- choices() → Multiple Items, Repetition संभव
- sample() → Multiple Unique Items
- shuffle() → List Shuffle
- uniform() → Random Float
- seed() → Reproducible Random Sequence
- secrets → Security-sensitive Random Values के लिए बेहतर
Python Date and Time in Hindi – datetime Module, date, time, datetime, timedelta, strftime(), strptime(), Current Date & Time, Date Difference और Practical Programs.