range() फ़ंक्शन Python में बहुत लोकप्रिय और व्यापक रूप से इस्तेमाल किया जाने वाला फ़ंक्शन है, खासकर जब आप for लूप के साथ काम कर रहे होते हैं, और कभी-कभी while लूप के साथ भी। range() फ़ंक्शन को जानना और उसमें महारत हासिल करना फायदेमंद है क्योंकि यह कई संभावनाएँ खोलता है: 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() फ़ंक्शन। इमेज: लेखक द्वारा।
हम range() को type() में लपेटकर इसके प्रकार की जाँच भी कर सकते हैं।
my_range =range(100)print(type(my_range))# Expected output: <class 'range'>संचालित द्वारा
Learn-by-Example एडिटर, प्रवेश के लिए Tab दबाएं। बाहर नेविगेट करने के लिए Escape और फिर Tab या Shift+Tab दबाएं।
अब कुछ उदाहरण देखते हैं ताकि आप range() का अभ्यास कर सकें और उसमें निपुण हो सकें।
Python range() का उपयोग करके संख्याओं का अनुक्रम प्रिंट करना
आइए दस संख्याओं का अनुक्रम प्रिंट करने का एक सरल उदाहरण देखें, जो आपके पहले range() पैरामीटर को कवर करेगा। इसे हासिल करने के लिए, आप केवल stop मान पास करेंगे। चूँकि Python शून्य-आधारित इंडेक्सिंग पर काम करता है, इसलिए अनुक्रम शून्य से शुरू होगा और निर्दिष्ट संख्या पर रुक जाएगा, यानी n-1, जहाँ nrange() फ़ंक्शन में निर्दिष्ट संख्या है।
my_range =range(10)for num in my_range:print(num)# Expected output:# 0# 1# 2# 3# 4# 5# 6# 7# 8# 9संचालित द्वारा
Learn-by-Example एडिटर, प्रवेश के लिए Tab दबाएं। बाहर नेविगेट करने के लिए Escape और फिर Tab या Shift+Tab दबाएं।
अपेक्षा के अनुसार, ऊपर वाला सेल 0 से शुरू होकर 9 पर समाप्त होने वाला संख्याओं का अनुक्रम लौटाता है।
Python range() को list() के साथ उपयोग करना
आप range फ़ंक्शन को list के आर्ग्युमेंट के रूप में भी उपयोग कर सकते हैं, ऐसी स्थिति में यह नीचे दिखाए अनुसार stop मान के बराबर लंबाई वाली संख्याओं की सूची देगा:
अब तीसरा पैरामीटर यानी 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)संचालित द्वारा
Learn-by-Example एडिटर, प्रवेश के लिए Tab दबाएं। बाहर नेविगेट करने के लिए Escape और फिर Tab या Shift+Tab दबाएं।
यह ध्यान रखना महत्वपूर्ण है कि range() फ़ंक्शन तभी काम करता है जब निर्दिष्ट मान integer या पूर्णांक हो। यह float डेटा टाइप और string डेटा टाइप को सपोर्ट नहीं करता। हालाँकि, आप इसमें सकारात्मक और नकारात्मक दोनों पूर्णांक मान पास कर सकते हैं। आइए देखें जब आप float मान पास करने की कोशिश करते हैं तो क्या होता है।
for num inrange(0.2,2.4):print(num)# Expected output:# TypeError: 'float' object cannot be interpreted as an integerसंचालित द्वारा
Learn-by-Example एडिटर, प्रवेश के लिए Tab दबाएं। बाहर नेविगेट करने के लिए Escape और फिर Tab या Shift+Tab दबाएं।
आपने C भाषा में integer मानों की linked list को उल्टा करने की कोशिश करते समय कम से कम एक बार सिर खुजाया होगा। लेकिन Python में, इसे range() फ़ंक्शन से बड़े आराम से किया जा सकता है—बस start और stop को बदलना है और साथ में नकारात्मक step आकार जोड़ना है। कितना आसान है, है ना? आइए देखते हैं!
for num inrange(100,10,-10):print(num)# Expected output:# 100# 90# 80# 70# 60# 50# 40# 30# 20संचालित द्वारा
Learn-by-Example एडिटर, प्रवेश के लिए Tab दबाएं। बाहर नेविगेट करने के लिए Escape और फिर Tab या Shift+Tab दबाएं।
मान लीजिए आपके पास integer मानों की एक सूची है, और आप उसका योग निकालना चाहते हैं, लेकिन range() फ़ंक्शन का उपयोग करके। देखते हैं यह कैसे किया जा सकता है।
सबसे पहले, आप integer मानों वाली सूची परिभाषित करेंगे। फिर एक काउंटर इनिशियलाइज़ करेंगे जिसमें आप हर बार सूची पर इटेरेट करते समय मान स्टोर करेंगे और वर्तमान सूची मान को पुराने काउंट मान में जोड़ेंगे।
सूची के तत्वों को एक्सेस करने के लिए, आप सूची की length पर range() फ़ंक्शन लागू करेंगे और फिर इंडेक्स i पास करके सूची के तत्वों को एक्सेस करेंगे, जो शून्य से शुरू होकर सूची की लंबाई तक जाएगा।
list1 =[2,4,6,8,10,12,14,16,18,20]
count =0for i inrange(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संचालित द्वारा
Learn-by-Example एडिटर, प्रवेश के लिए Tab दबाएं। बाहर नेविगेट करने के लिए Escape और फिर Tab या Shift+Tab दबाएं।
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>संचालित द्वारा
Learn-by-Example एडिटर, प्रवेश के लिए Tab दबाएं। बाहर नेविगेट करने के लिए Escape और फिर Tab या Shift+Tab दबाएं।
आप range() फ़ंक्शनों के बीच समानता तुलना लागू कर सकते हैं। दिए गए दो range() फ़ंक्शन, यदि वे समान मानों का अनुक्रम दर्शाते हैं, तो उन्हें बराबर माना जाता है। इसका यह मतलब नहीं कि दो बराबर range() फ़ंक्शनों में एक जैसे start, stop, और step एट्रिब्यूट हों। इसे एक उदाहरण से समझते हैं।
जैसा कि आप ऊपर के आउटपुट से देख सकते हैं, भले ही range() फ़ंक्शन के पैरामीटर अलग हों, फिर भी उन्हें बराबर माना जाता है क्योंकि दोनों फ़ंक्शनों के अनुक्रम समान हैं। दूसरे उदाहरण में, step आकार बदलने से तुलना का परिणाम False हो जाता है।
निष्कर्ष
ट्यूटोरियल पूरा करने के लिए बधाई। आप range() फ़ंक्शन के साथ थोड़ा प्रयोग करना चाहें और इसे integers के अलावा अन्य डेटा टाइप स्वीकार करने के लिए कस्टमाइज़ करने का तरीका ढूँढें।
यदि पढ़ने के बाद आपको लगता है कि आप Python फ़ंक्शनों का और अभ्यास करना चाहेंगे, तो हमारे Python Functions और Beginner's Guide to Python for Loops ट्यूटोरियल देखें। एक संरचित लर्निंग पाथ के लिए, हमारा DataCamp कोर्स Writing Efficient Python Code देखें, जो न केवल range() फ़ंक्शन को विस्तार से कवर करता है बल्कि अधिक सामान्य कोडिंग अवधारणाओं में भी मदद करता है ताकि आप बिना ज़्यादा ओवरहेड के वास्तव में कुशल कोड लिख सकें।
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 मान तक अनुक्रम बनाता है।हम
range()कोtype()में लपेटकर इसके प्रकार की जाँच भी कर सकते हैं।Python range() फ़ंक्शन के उदाहरण
अब कुछ उदाहरण देखते हैं ताकि आप
range()का अभ्यास कर सकें और उसमें निपुण हो सकें।Python range() का उपयोग करके संख्याओं का अनुक्रम प्रिंट करना
आइए दस संख्याओं का अनुक्रम प्रिंट करने का एक सरल उदाहरण देखें, जो आपके पहले
range()पैरामीटर को कवर करेगा। इसे हासिल करने के लिए, आप केवलstopमान पास करेंगे। चूँकि Python शून्य-आधारित इंडेक्सिंग पर काम करता है, इसलिए अनुक्रम शून्य से शुरू होगा और निर्दिष्ट संख्या पर रुक जाएगा, यानीn-1, जहाँnrange()फ़ंक्शन में निर्दिष्ट संख्या है।अपेक्षा के अनुसार, ऊपर वाला सेल
0से शुरू होकर9पर समाप्त होने वाला संख्याओं का अनुक्रम लौटाता है।Python range() को list() के साथ उपयोग करना
आप range फ़ंक्शन को list के आर्ग्युमेंट के रूप में भी उपयोग कर सकते हैं, ऐसी स्थिति में यह नीचे दिखाए अनुसार stop मान के बराबर लंबाई वाली संख्याओं की सूची देगा:
Python range() में start, stop, और step का उपयोग
अब
range()फ़ंक्शन के साथ काम करने का एक और तरीका देखते हैं। यहाँ आपstartऔरstopदोनों मान निर्दिष्ट करेंगे।इसी तरह, आप
range()फ़ंक्शन का उपयोग नकारात्मक पूर्णांक मानों को प्रिंट करने के लिए भी कर सकते हैं।अब तीसरा पैरामीटर यानी
stepआकार कोrange()फ़ंक्शन में जोड़ते हैं और देखते हैं कि यह आउटपुट को कैसे प्रभावित करता है। आपstartबिंदु 50,stopमान 1000 औरstepआकार 100 निर्दिष्ट करेंगे। नीचे दिया गया range फ़ंक्शन 50 से शुरू होकर 100 के स्टेप के साथ बढ़ता हुआ अनुक्रम आउटपुट करेगा।आप देखेंगे कि यह सभी सम संख्याएँ प्रिंट करेगा।
Python range() और float मानों पर एक टिप्पणी
यह ध्यान रखना महत्वपूर्ण है कि
range()फ़ंक्शन तभी काम करता है जब निर्दिष्ट मान integer या पूर्णांक हो। यह float डेटा टाइप और string डेटा टाइप को सपोर्ट नहीं करता। हालाँकि, आप इसमें सकारात्मक और नकारात्मक दोनों पूर्णांक मान पास कर सकते हैं। आइए देखें जब आप float मान पास करने की कोशिश करते हैं तो क्या होता है।आपने C भाषा में integer मानों की linked list को उल्टा करने की कोशिश करते समय कम से कम एक बार सिर खुजाया होगा। लेकिन Python में, इसे
range()फ़ंक्शन से बड़े आराम से किया जा सकता है—बसstartऔरstopको बदलना है और साथ में नकारात्मक step आकार जोड़ना है। कितना आसान है, है ना? आइए देखते हैं!range() का उपयोग करके सूची का योग निकालना
मान लीजिए आपके पास integer मानों की एक सूची है, और आप उसका योग निकालना चाहते हैं, लेकिन
range()फ़ंक्शन का उपयोग करके। देखते हैं यह कैसे किया जा सकता है।सबसे पहले, आप integer मानों वाली सूची परिभाषित करेंगे। फिर एक काउंटर इनिशियलाइज़ करेंगे जिसमें आप हर बार सूची पर इटेरेट करते समय मान स्टोर करेंगे और वर्तमान सूची मान को पुराने काउंट मान में जोड़ेंगे।
सूची के तत्वों को एक्सेस करने के लिए, आप सूची की
lengthपरrange()फ़ंक्शन लागू करेंगे और फिर इंडेक्सiपास करके सूची के तत्वों को एक्सेस करेंगे, जो शून्य से शुरू होकर सूची की लंबाई तक जाएगा।itertools के साथ range() का उपयोग करके सूची concatenation
आप
itertoolsपैकेज कीchainक्लास का उपयोग करके दो या अधिकrange()फ़ंक्शन को concatenate कर सकते हैं। और सिर्फ range फ़ंक्शन ही नहीं, आप सूचियाँ, टपल आदि भी concatenate कर सकते हैं। ध्यान रखें किchainमेथड एक जनरेटर ऑब्जेक्ट लौटाता है, और उस जनरेटर ऑब्जेक्ट से तत्वों को एक्सेस करने के लिए आप या तोforलूप का उपयोग कर सकते हैं याlistका उपयोग करके जनरेटर ऑब्जेक्ट को आर्ग्युमेंट के रूप में पास कर सकते हैं।Python range() और समानता तुलना
आप
range()फ़ंक्शनों के बीच समानता तुलना लागू कर सकते हैं। दिए गए दोrange()फ़ंक्शन, यदि वे समान मानों का अनुक्रम दर्शाते हैं, तो उन्हें बराबर माना जाता है। इसका यह मतलब नहीं कि दो बराबरrange()फ़ंक्शनों में एक जैसेstart,stop, औरstepएट्रिब्यूट हों। इसे एक उदाहरण से समझते हैं।जैसा कि आप ऊपर के आउटपुट से देख सकते हैं, भले ही
range()फ़ंक्शन के पैरामीटर अलग हों, फिर भी उन्हें बराबर माना जाता है क्योंकि दोनों फ़ंक्शनों के अनुक्रम समान हैं। दूसरे उदाहरण में,stepआकार बदलने से तुलना का परिणामFalseहो जाता है।निष्कर्ष
ट्यूटोरियल पूरा करने के लिए बधाई। आप
range()फ़ंक्शन के साथ थोड़ा प्रयोग करना चाहें और इसे integers के अलावा अन्य डेटा टाइप स्वीकार करने के लिए कस्टमाइज़ करने का तरीका ढूँढें।यदि पढ़ने के बाद आपको लगता है कि आप Python फ़ंक्शनों का और अभ्यास करना चाहेंगे, तो हमारे Python Functions और Beginner's Guide to Python for Loops ट्यूटोरियल देखें। एक संरचित लर्निंग पाथ के लिए, हमारा DataCamp कोर्स Writing Efficient Python Code देखें, जो न केवल
range()फ़ंक्शन को विस्तार से कवर करता है बल्कि अधिक सामान्य कोडिंग अवधारणाओं में भी मदद करता है ताकि आप बिना ज़्यादा ओवरहेड के वास्तव में कुशल कोड लिख सकें।