मुख्य सामग्री पर जाएँ

Python range() फ़ंक्शन ट्यूटोरियल

उदाहरणों की मदद से Python के range() फ़ंक्शन और उसकी क्षमताओं के बारे में जानें।
· 7 मि॰ पढ़ें

AI के साथ खोजें

range() फ़ंक्शन Python में बहुत लोकप्रिय और व्यापक रूप से इस्तेमाल किया जाने वाला फ़ंक्शन है, खासकर जब आप for लूप के साथ काम कर रहे होते हैं, और कभी-कभी while लूप के साथ भी। range() फ़ंक्शन को जानना और उसमें महारत हासिल करना फायदेमंद है क्योंकि यह कई संभावनाएँ खोलता है: range() का उपयोग प्रोग्राम के प्रवाह को नियंत्रित करने से लेकर डेटा विश्लेषण के लिए इस्तेमाल किए जाने वाले डेटा सेट्स पर लूप चलाने तक हर चीज़ में होता है। 

यदि आप Python में शुरुआत कर रहे हैं और अधिक सीखना चाहते हैं, तो DataCamp का Introduction to Data Science in Python कोर्स देखें।

Python में range() फ़ंक्शन क्या है?

range() फ़ंक्शन संख्याओं का एक अनुक्रम लौटाता है और यह immutable होता है, यानी इसका मान स्थिर रहता है। range() फ़ंक्शन एक या अधिकतम तीन आर्ग्युमेंट लेता है, अर्थात् start और stop मान के साथ step आकार।

range() Python3 में पेश किया गया था। Python2 में इसी तरह का फ़ंक्शन xrange() इस्तेमाल होता था, जिसका व्यवहार कुछ अलग था। अन्य बातों के अलावा, xrange() एक जनरेटर ऑब्जेक्ट लौटाता था और कम मेमरी उपयोग करता था, जबकि range() दूसरी ओर, संख्याओं की एक सूची या अनुक्रम लौटाता है।

range() फ़ंक्शन उपयोगी होने का एक कारण यह है कि यह केवल start, stop, और step मानों को स्टोर करता है, इसलिए यह किसी सूची या टपल की तुलना में कम मेमरी लेता है।

Python range() फ़ंक्शन का सिंटैक्स

range() फ़ंक्शन को तीन अलग-अलग तरीकों से व्यक्त किया जा सकता है, या आप इन्हें range() के तीन पैरामीटर मान सकते हैं:

  • range(stop_value): डिफ़ॉल्ट रूप से, शुरुआती बिंदु शून्य होता है।
  • range(start_value, stop_value): यह start और stop मान के आधार पर अनुक्रम बनाता है।
  • range(start_value, stop_value, step_size): यह step आकार का उपयोग करते हुए start मान को बढ़ाते हुए stop मान तक अनुक्रम बनाता है।
Python range फ़ंक्शन उदाहरण
Python range() फ़ंक्शन। इमेज: लेखक द्वारा। 

हम range() को type() में लपेटकर इसके प्रकार की जाँच भी कर सकते हैं।

my_range = range(100)
print(type(my_range))

# Expected output: <class 'range'>

Python range() फ़ंक्शन के उदाहरण

अब कुछ उदाहरण देखते हैं ताकि आप range() का अभ्यास कर सकें और उसमें निपुण हो सकें।

Python range() का उपयोग करके संख्याओं का अनुक्रम प्रिंट करना

आइए दस संख्याओं का अनुक्रम प्रिंट करने का एक सरल उदाहरण देखें, जो आपके पहले range() पैरामीटर को कवर करेगा। इसे हासिल करने के लिए, आप केवल stop मान पास करेंगे। चूँकि Python शून्य-आधारित इंडेक्सिंग पर काम करता है, इसलिए अनुक्रम शून्य से शुरू होगा और निर्दिष्ट संख्या पर रुक जाएगा, यानी n-1, जहाँ n range() फ़ंक्शन में निर्दिष्ट संख्या है।

my_range = range(10)

for num in my_range:
	print(num)

# Expected output:
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9

अपेक्षा के अनुसार, ऊपर वाला सेल 0 से शुरू होकर 9 पर समाप्त होने वाला संख्याओं का अनुक्रम लौटाता है।

Python range() को list() के साथ उपयोग करना

आप range फ़ंक्शन को list के आर्ग्युमेंट के रूप में भी उपयोग कर सकते हैं, ऐसी स्थिति में यह नीचे दिखाए अनुसार stop मान के बराबर लंबाई वाली संख्याओं की सूची देगा:

my_range = list(range(10))
print(my_range)

range_length = len(my_range)
print(range_length)

# Expected output:
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 10

Python range() में start, stop, और step का उपयोग

अब range() फ़ंक्शन के साथ काम करने का एक और तरीका देखते हैं। यहाँ आप start और stop दोनों मान निर्दिष्ट करेंगे।

my_range = range(5, 10)
print(my_range)

# Expected output: range(5, 10)
for num in range(5,10):
    print(num)

# Expected output:
# 5
# 6
# 7
# 8
# 9

इसी तरह, आप range() फ़ंक्शन का उपयोग नकारात्मक पूर्णांक मानों को प्रिंट करने के लिए भी कर सकते हैं।

for num in range(-5,0):
    print(num)

# Expected output:
# -5
# -4
# -3
# -2
# -1

अब तीसरा पैरामीटर यानी step आकार को range() फ़ंक्शन में जोड़ते हैं और देखते हैं कि यह आउटपुट को कैसे प्रभावित करता है। आप start बिंदु 50, stop मान 1000 और step आकार 100 निर्दिष्ट करेंगे। नीचे दिया गया range फ़ंक्शन 50 से शुरू होकर 100 के स्टेप के साथ बढ़ता हुआ अनुक्रम आउटपुट करेगा।

my_range = range(50,1000,100)
print(my_range)

# Expected output: range(50, 1000, 100)

आप देखेंगे कि यह सभी सम संख्याएँ प्रिंट करेगा।

for num in range(50,1000,100):
    print(num)

# Expected output:
# 50
# 150
# 250
# 350
# 450
# 550
# 650
# 750
# 850
# 950

Python range() और float मानों पर एक टिप्पणी

यह ध्यान रखना महत्वपूर्ण है कि range() फ़ंक्शन तभी काम करता है जब निर्दिष्ट मान integer या पूर्णांक हो। यह float डेटा टाइप और string डेटा टाइप को सपोर्ट नहीं करता। हालाँकि, आप इसमें सकारात्मक और नकारात्मक दोनों पूर्णांक मान पास कर सकते हैं। आइए देखें जब आप float मान पास करने की कोशिश करते हैं तो क्या होता है।

for num in range(0.2,2.4):
    print(num)

# Expected output:
# TypeError: 'float' object cannot be interpreted as an integer

आपने C भाषा में integer मानों की linked list को उल्टा करने की कोशिश करते समय कम से कम एक बार सिर खुजाया होगा। लेकिन Python में, इसे range() फ़ंक्शन से बड़े आराम से किया जा सकता है—बस start और stop को बदलना है और साथ में नकारात्मक step आकार जोड़ना है। कितना आसान है, है ना? आइए देखते हैं!

for num in range(100,10,-10):
    print(num)

# Expected output:
# 100
# 90
# 80
# 70
# 60
# 50
# 40
# 30
# 20

range() का उपयोग करके सूची का योग निकालना

मान लीजिए आपके पास integer मानों की एक सूची है, और आप उसका योग निकालना चाहते हैं, लेकिन range() फ़ंक्शन का उपयोग करके। देखते हैं यह कैसे किया जा सकता है।

सबसे पहले, आप integer मानों वाली सूची परिभाषित करेंगे। फिर एक काउंटर इनिशियलाइज़ करेंगे जिसमें आप हर बार सूची पर इटेरेट करते समय मान स्टोर करेंगे और वर्तमान सूची मान को पुराने काउंट मान में जोड़ेंगे।

सूची के तत्वों को एक्सेस करने के लिए, आप सूची की length पर range() फ़ंक्शन लागू करेंगे और फिर इंडेक्स i पास करके सूची के तत्वों को एक्सेस करेंगे, जो शून्य से शुरू होकर सूची की लंबाई तक जाएगा।

list1 = [2,4,6,8,10,12,14,16,18,20]
count = 0

for i in range(len(list1)):
    count = count + list1[i]
    print(count)
print('sum of the list:', count)

# Expected output:
# 2
# 6
# 12
# 20
# 30
# 42
# 56
# 72
# 90
# 110
# sum of the list: 110

itertools के साथ range() का उपयोग करके सूची concatenation

आप itertools पैकेज की chain क्लास का उपयोग करके दो या अधिक range() फ़ंक्शन को concatenate कर सकते हैं। और सिर्फ range फ़ंक्शन ही नहीं, आप सूचियाँ, टपल आदि भी concatenate कर सकते हैं। ध्यान रखें कि chain मेथड एक जनरेटर ऑब्जेक्ट लौटाता है, और उस जनरेटर ऑब्जेक्ट से तत्वों को एक्सेस करने के लिए आप या तो for लूप का उपयोग कर सकते हैं या list का उपयोग करके जनरेटर ऑब्जेक्ट को आर्ग्युमेंट के रूप में पास कर सकते हैं।

from itertools import chain

a1 = range(10,0,-2)
a2 = range(30,20,-2)
a3 = range(50,40,-2)

final = chain(a1,a2,a3)

print(final) #generator object

# Expected output: <itertools.chain object at 0xae6330>
print(list(final))

# Expected output:
# [10, 8, 6, 4, 2, 30, 28, 26, 24, 22, 50, 48, 46, 44, 42]

Python range() और समानता तुलना

आप range() फ़ंक्शनों के बीच समानता तुलना लागू कर सकते हैं। दिए गए दो range() फ़ंक्शन, यदि वे समान मानों का अनुक्रम दर्शाते हैं, तो उन्हें बराबर माना जाता है। इसका यह मतलब नहीं कि दो बराबर range() फ़ंक्शनों में एक जैसे start, stop, और step एट्रिब्यूट हों। इसे एक उदाहरण से समझते हैं।

# range(0, 10, 3) = [0, 3, 6, 9]
# range(0, 11, 3) = [0, 3, 6, 9]

print(range(0, 10, 3) == range(0, 11, 3))

# Expected output: True
# range(0, 10, 3) = [0, 3, 6, 9]
# range(0, 11, 2) = [0, 2, 4, 6, 8, 10]

print(range(0, 10, 3) == range(0, 11, 2))

# Expected output: False

जैसा कि आप ऊपर के आउटपुट से देख सकते हैं, भले ही range() फ़ंक्शन के पैरामीटर अलग हों, फिर भी उन्हें बराबर माना जाता है क्योंकि दोनों फ़ंक्शनों के अनुक्रम समान हैं। दूसरे उदाहरण में, step आकार बदलने से तुलना का परिणाम False हो जाता है।

निष्कर्ष

ट्यूटोरियल पूरा करने के लिए बधाई। आप range() फ़ंक्शन के साथ थोड़ा प्रयोग करना चाहें और इसे integers के अलावा अन्य डेटा टाइप स्वीकार करने के लिए कस्टमाइज़ करने का तरीका ढूँढें।

यदि पढ़ने के बाद आपको लगता है कि आप Python फ़ंक्शनों का और अभ्यास करना चाहेंगे, तो हमारे Python Functions और Beginner's Guide to Python for Loops ट्यूटोरियल देखें। एक संरचित लर्निंग पाथ के लिए, हमारा DataCamp कोर्स Writing Efficient Python Code देखें, जो न केवल range() फ़ंक्शन को विस्तार से कवर करता है बल्कि अधिक सामान्य कोडिंग अवधारणाओं में भी मदद करता है ताकि आप बिना ज़्यादा ओवरहेड के वास्तव में कुशल कोड लिख सकें। 

विषय