Python range() फ़ंक्शन: फ़्लोट, सूची, फ़ॉर लूप उदाहरण

⚡ स्मार्ट सारांश

Python range() एक अंतर्निर्मित फ़ंक्शन है जो एक प्रारंभिक मान से लेकर एक अंतिम मान तक (लेकिन अंतिम मान को शामिल किए बिना) पूर्णांकों का एक अपरिवर्तनीय अनुक्रम उत्पन्न करता है, जिसमें वृद्धि को नियंत्रित करने के लिए एक वैकल्पिक चरण का उपयोग किया जाता है।

  • 🔘 सिंटेक्स: range(start, stop, step) अधिकतम तीन पूर्णांक तर्क स्वीकार करता है, जहां start का डिफ़ॉल्ट मान 0 और step का डिफ़ॉल्ट मान 1 होता है।
  • विशेष पड़ाव: अनुक्रम हमेशा स्टॉप इंडेक्स से एक मान पहले रुक जाता है, इसलिए रेंज (5) 0 से 4 तक परिणाम देता है।
  • चरण नियंत्रण: सकारात्मक चरण मानों को बढ़ाता है, जबकि नकारात्मक चरण विपरीत दिशा में गिनती करता है।
  • 🧪 प्रकार की सीमाएँ: केवल पूर्णांक ही स्वीकार किए जाते हैं, इसलिए फ्लोटिंग-पॉइंट या स्ट्रिंग आर्गुमेंट टाइप एरर उत्पन्न करते हैं।
  • NumPy फ्लोट्स: NumPy का arange() फ़ंक्शन, range() फ़ंक्शन के व्यवहार को फ़्लोटिंग-पॉइंट अनुक्रमों तक विस्तारित करता है।
  • 🤖 एआई वर्कफ़्लो: मशीन लर्निंग कोड प्रशिक्षण युगों, मिनी-बैचों और हाइपरपैरामीटर ग्रिडों को दोहराने के लिए range() फ़ंक्शन पर निर्भर करता है।

Python रेंज() फ़ंक्शन

एचएमबी क्या है? Python श्रेणी?

Python range() एक अंतर्निहित फ़ंक्शन है जो उपलब्ध है Python से Python (3.x), और यह दिए गए स्टार्ट और स्टॉप इंडेक्स के आधार पर संख्याओं का एक क्रम देता है। यदि स्टार्ट इंडेक्स नहीं दिया गया है, तो इंडेक्स को 0 माना जाता है, और यह स्टॉप इंडेक्स तक 1 से मूल्य बढ़ाएगा।

उदाहरण के लिए, range(5) 0, 1, 2, 3, 4 मान आउटपुट करेगा। Python range() एक बहुत ही उपयोगी कमांड है और इसका उपयोग अधिकतर तब किया जाता है जब आपको किसी पैरामीटर का उपयोग करके पुनरावृति करनी होती है। पाश के लिए.

वाक्य - विन्यास

range() फ़ंक्शन का सिंटैक्स नीचे दिखाया गया है:

range(start, stop, step)

पैरामीटर्स

  • शुरू: (वैकल्पिक) प्रारंभिक सूचकांक एक पूर्णांक है, और यदि नहीं दिया गया है, तो डिफ़ॉल्ट मान 0 है।
  • रुकें: स्टॉप इंडेक्स वह मान निर्धारित करता है जिस पर रेंज फ़ंक्शन को रुकना होता है। यह रेंज फ़ंक्शन के लिए एक अनिवार्य इनपुट है। अंतिम मान हमेशा स्टॉप मान से 1 कम होगा।
  • कदम: (वैकल्पिक) स्टेप वैल्यू वह संख्या है जिससे रेंज में अगली संख्या को बढ़ाया जाना है; डिफ़ॉल्ट रूप से, यह 1 है।

प्रतिलाभ की मात्रा

वापसी मान दिए गए प्रारंभ से अंत सूचकांक तक संख्याओं का अनुक्रम है।

Python range() फ़ंक्शन और इतिहास

Python range() को शुरू किया गया है Python संस्करण 3; इससे पहले, xrange() फ़ंक्शन था।

range() और xrange() दोनों का उपयोग संख्याओं का एक क्रम उत्पन्न करने के लिए किया जाता है।

range() और xrange() के बीच निम्नलिखित अंतर हैं:

रेंज () एक्सरेंज ()
range() संख्याओं का अनुक्रम देता है और संख्याओं की सूची लौटाता है। xrange() फ़ंक्शन एक जेनरेटर ऑब्जेक्ट देता है जिसे मान प्राप्त करने के लिए for-लूप में लूप करना पड़ता है।
range() एक सूची लौटाता है. xrange() एक जनरेटर ऑब्जेक्ट लौटाता है.
xrange() की तुलना में range() विधि अधिक मेमोरी का उपयोग करती है, क्योंकि लौटाई गई सूची को संग्रहित करना पड़ता है। चूंकि xrange() एक जनरेटर ऑब्जेक्ट लौटाता है, इसलिए यह तुरंत मान नहीं देता है और मान प्राप्त करने के लिए इसे एक फॉर-लूप के अंदर उपयोग करना पड़ता है।
मेमोरी का उपयोग अधिक होता है, इसलिए डेटा के विशाल सेट पर काम करते समय कोड का निष्पादन धीमा होता है। xrange() का उपयोग करके कोड निष्पादन तेज़ होता है।

रेंज() का उपयोग करना

यह उदाहरण दिखाता है कि range() का उपयोग करके 0-9 तक के मान कैसे प्रिंट करें।

रेंज में प्रयुक्त मान 10 है, इसलिए आउटपुट 0 1 2 3 4 5 6 7 8 9 है।

चूंकि प्रारंभ मान नहीं दिया गया है, इसलिए प्रारंभ मान को 0 माना जाता है और अंतिम मान 9 तक दिया जाता है। अंतिम मान हमेशा दिए गए मान से 1 कम होता है, यानी स्टॉप-1।

for i in range(10):
    print(i, end =" ")

आउटपुट:

0 1 2 3 4 5 6 7 8 9

रेंज में स्टार्ट और स्टॉप का उपयोग करना()

कोड में, प्रारंभ मान 3 है और समापन मान 10 है। यहाँ प्रारंभ सूचकांक 3 है, इसलिए संख्याओं का क्रम 3 से शुरू होकर समापन मान तक जाएगा। क्रम का अंतिम मान समापन मान से 1 कम होगा, यानी 10-1 = 9।

for i in range(3, 10):
    print(i, end =" ")

आउटपुट:

3 4 5 6 7 8 9

स्टार्ट, स्टॉप और स्टेप का उपयोग करना

प्रारंभ मान 3 है, इसलिए संख्याओं का क्रम 3 से शुरू होगा। समापन मान 10 है, इसलिए संख्याओं का क्रम (10-1) यानी 9 पर समाप्त होगा। चरण 2 है, इसलिए क्रम में प्रत्येक मान में 2 की वृद्धि होगी। यदि चरण का मान नहीं दिया गया है, तो चरण का मान डिफ़ॉल्ट रूप से 1 होगा।

for i in range(3, 10, 2):
    print(i, end =" ")

आउटपुट:

3 5 7 9

अब तक हमने देखा कि range() फ़ंक्शन दिए गए स्टॉप वैल्यू के लिए इंक्रीमेंटेड वैल्यू कैसे देता है। आइए अब दिए गए रेंज में डिक्रीमेंटेड वैल्यू प्राप्त करने का एक उदाहरण देखें।

धनात्मक चरण का उपयोग करके सीमा में मानों को बढ़ाना

range() फ़ंक्शन में step पैरामीटर का उपयोग मानों को बढ़ाने या घटाने के लिए किया जा सकता है। डिफ़ॉल्ट रूप से, यह एक धनात्मक मान, 1 होता है। इसलिए यह हमेशा बढ़ते हुए मान देगा।

यदि आप आउटपुट के रूप में बढ़ते हुए मान चाहते हैं तो स्टेप का मान धनात्मक होना चाहिए।

for i in range(1, 30, 5):
    print(i, end =" ")

आउटपुट:

1 6 11 16 21 26

Reverse रेंज: ऋणात्मक चरण का उपयोग करके मानों को घटाना

range() फ़ंक्शन में ऋणात्मक मान के साथ step पैरामीटर का उपयोग करके घटते हुए मान प्राप्त किए जा सकते हैं। नीचे दिए गए उदाहरण में, step का मान ऋणात्मक है, इसलिए आउटपुट दिए गए range मान से घटता हुआ होगा।

for i in range(15, 5, -1):
    print(i, end =" ")

आउटपुट:

15 14 13 12 11 10 9 8 7 6

प्रारंभिक मान 15 है, अंतिम मान 5 है, और चरण मान एक ऋणात्मक संख्या है, यानी -1। उपरोक्त इनपुट के साथ, range() फ़ंक्शन मान को 15 से घटाते हुए अंतिम मान तक पहुंचाएगा, लेकिन अंतर यह है कि अंतिम मान अंतिम मान + 1 होगा।

फ्लोटिंग संख्याओं का उपयोग Python रेंज ()

आइए अब फ्लोटिंग-पॉइंट संख्याओं का उपयोग करके range() पर काम करें।

उदाहरण:

for i in range(10.5):
    print(i, end =" ")

उपरोक्त उदाहरण में, हमने स्टॉप वैल्यू को 10.5 के रूप में उपयोग किया है।

आउटपुट है:

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for i in range(10.5):
TypeError: 'float' object cannot be interpreted as an integer

Python यह त्रुटि उत्पन्न करता है क्योंकि range() फ़ंक्शन स्टार्ट, स्टॉप और स्टेप के लिए फ़्लोटिंग-पॉइंट संख्याओं का समर्थन नहीं करता है।

फॉर-लूप का उपयोग करना Python रेंज ()

इस उदाहरण में, हम संख्याओं की एक सरणी का उपयोग करेंगे और देखेंगे कि range() का उपयोग करके for-लूप के अंदर सरणी को कैसे दोहराया जाता है।

उदाहरण:

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']

for i in range(len(arr_list)):
    print(arr_list[i], end =" ")

आउटपुट:

MysqlMongodb PostgreSQL Firebase

ऊपर दिए गए उदाहरण में, हमने len(arr_list) को स्टॉप वैल्यू के रूप में इस्तेमाल किया है। फॉर लूप स्टॉप वैल्यू तक चलेगा, यानी ऐरे की लंबाई तक, जो कि 4 होगी, क्योंकि arr_list में चार आइटम हैं। स्टार्ट वैल्यू 0 होगी और स्टेप 1 होगा, इसलिए वैल्यू 0 से शुरू होकर 3 पर रुकेंगी, यानी ऐरे की लंबाई -1, यानी 4 - 1 = 3।

का प्रयोग Python range() को सूची के रूप में

इस उदाहरण में हम देखेंगे कि रेंज से आउटपुट को सूची के रूप में कैसे उपयोग किया जाए।

उदाहरण:

print(list(range(10)))

आउटपुट:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

आप देख सकते हैं कि आउटपुट एक सूची प्रारूप है। इसमें range() को लूप करना आवश्यक नहीं था और list() विधि का उपयोग करके हम आउटपुट को सीधे range से सूची प्रारूप में बदल सकते थे।

पायथन रेंज() में वर्णों का उपयोग करना

अब तक, हमने पायथन रेंज() में पूर्णांकों का उपयोग किया है। हमने यह भी देखा है कि पायथन रेंज में फ़्लोटिंग-पॉइंट संख्याएँ समर्थित नहीं हैं। आइए हम यह देखने का प्रयास करें कि जब हम वर्णों का उपयोग करते हैं तो क्या होता है।

उदाहरण:

for c in range ('z'):
        print(c, end =" ")

आउटपुट:

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer

यह एक त्रुटि उत्पन्न करता है जिसमें कहा जाता है कि स्ट्रिंग को पूर्णांक के रूप में नहीं समझा जा सकता।

अक्षरों की सूची प्राप्त करने के लिए आप कोड को अनुकूलित कर सकते हैं और नीचे दिखाए अनुसार वांछित आउटपुट प्राप्त कर सकते हैं:

उदाहरण:

def get_alphabets(startletter, stopletter, step):
    for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):
        yield chr(c)

print(list(get_alphabets("a", "h", 1)))

आउटपुट:

['a', 'b', 'c', 'd', 'e', 'f', 'g']

रेंज तत्वों तक कैसे पहुँचें

आप रेंज से मान प्राप्त करने के लिए फॉर-लूप का उपयोग कर सकते हैं या रेंज() से तत्वों तक पहुंचने के लिए इंडेक्स का उपयोग कर सकते हैं।

फॉर-लूप का उपयोग करना

उदाहरण:

for i in range(6):
    print(i)

आउटपुट:

0
1
2
3
4
5

सूचकांक का उपयोग करना

उस स्थिति पर उपलब्ध मान प्राप्त करने के लिए इंडेक्स का उपयोग रेंज के साथ किया जाता है। यदि रेंज मान 5 है, तो आरंभिक मान प्राप्त करने के लिए, आप रेंज(5)[0] और अगला मान रेंज(5)[1] इत्यादि का उपयोग कर सकते हैं।

उदाहरण:

startvalue = range(5)[0] 
print("The first element in range is = ", startvalue) 

secondvalue = range(5)[1] 
print("The second element in range is = ", secondvalue) 

lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)

आउटपुट:

The first element in range is =  0
The second element in range is =  1
The first element in range is =  4

सूची() का उपयोग करना

यह विधि range() से सभी तत्वों को प्रिंट करेगी। list() का उपयोग करके यह range() से तत्वों को सूची प्रारूप में लौटाएगा।

उदाहरण:

print(list(range(10)))

आउटपुट:

 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

यह दी गई रेंज के लिए सूची आउटपुट देता है।

उदाहरण: range() का उपयोग करके सम संख्याएँ प्राप्त करें

range() फ़ंक्शन का उपयोग करने पर इनपुट के रूप में दी गई सीमा में सम संख्याओं की सूची प्राप्त होगी। range() के पैरामीटर हैं: start 2, stop 20 और step 2, इसलिए मान 2 से बढ़ते जाएंगे और stop-2 तक सम संख्याएँ प्राप्त होंगी।

उदाहरण:

for i in range(2, 20, 2):
    print(i, end =" ")

आउटपुट:

2 4 6 8 10 12 14 16 18

दो-रेंज() आउटपुट को मर्ज करना

इस उदाहरण में, हम itertools मॉड्यूल के chain() फ़ंक्शन की मदद से 2 range() फ़ंक्शन को जोड़ेंगे।

उदाहरण:

from itertools import chain

print("Merging two range into one")
frange =chain(range(10), range(10, 20, 1))
for i in frange:
    print(i, end=" ")

आउटपुट:

Merging two range into one
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

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

NumPy मॉड्यूल में arange() फ़ंक्शन है जो range() की तरह ही काम करता है और समान आउटपुट देता है। arange() फ़ंक्शन भी range() की तरह ही पैरामीटर लेता है।

सिंटेक्स:

arange(start, stop, step)

NumPy के साथ काम करने के लिए, नीचे दिए गए चरणों का पालन करें।

चरण 1: NumPy मॉड्यूल आयात करें

import numpy

यदि निष्पादन के दौरान, numpy मॉड्यूल नहीं मिलने की त्रुटि आती है, तो आपको चरण 2 में दिखाए अनुसार मॉड्यूल को स्थापित करने की आवश्यकता है।

चरण 2: NumPy इंस्टॉल करें

pip install numpy

चरण 3: NumPy का उपयोग करके arange() का कार्यशील उदाहरण

import numpy as np

for  i in np.arange(10):
   print(i, end =" ")  

आउटपुट:

0 1 2 3 4 5 6 7 8 9

NumPy arange() का उपयोग करके फ़्लोटिंग पॉइंट संख्याएँ

range() का उपयोग करके फ्लोटिंग-पॉइंट अनुक्रम प्राप्त करना संभव नहीं है, लेकिन NumPy arange() का उपयोग करके यह संभव है।

उदाहरण:

हमें 0.5 से 1.5 तक की रेंज चाहिए। मान में 0.2 की वृद्धि की जाएगी।

import numpy as np

for  i in np.arange(0.5, 1.5, 0.2):
   print(i, end =" ")  

आउटपुट:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

हमें जो आउटपुट मिलता है वह थोड़ा अजीब है; कुछ फ्लोट संख्याएँ 16 दशमलव स्थानों के साथ दिखाई देती हैं। ऐसा बाइनरी फॉर्मेट में दशमलव फ्लोट संख्याओं को स्टोर करने की जटिलता के कारण होता है। आप चाहें तो मानों को राउंड ऑफ करके उन्हें आवश्यक दशमलव स्थानों तक सीमित कर सकते हैं।

अक्सर पूछे जाने वाले प्रश्न

In Python 3. range() एक लेज़ी, अपरिवर्तनीय रेंज ऑब्जेक्ट लौटाता है, सूची नहीं। यह आवश्यकतानुसार संख्याएँ उत्पन्न करता है। जब वास्तविक सूची की आवश्यकता हो, तो इसे list(range(n)) में लपेटें। Python 2 ने पूरी सूची लौटा दी।

स्टॉप वैल्यू एक्सक्लूसिव है ताकि range(len(items)) शून्य-आधारित इंडेक्स में स्पष्ट रूप से मैप हो जाए। एंडपॉइंट को शामिल करने के लिए, स्टॉप में एक जोड़ें, उदाहरण के लिए range(1, 11) का उपयोग करके 1 से 10 तक गिनती करें।

नहीं। range(0, 10, 0) को कॉल करने पर ValueError उत्पन्न होता है: range() का तर्क 3 शून्य नहीं होना चाहिए, क्योंकि शून्य स्टेप कभी भी स्टॉप वैल्यू तक नहीं पहुंच सकता और लूप अनंतकाल तक चलता रहेगा। इसके बजाय धनात्मक या ऋणात्मक स्टेप का उपयोग करें।

range() फ्लोट को अस्वीकार करता है, लेकिन एक लिस्ट कॉम्प्रिहेंशन पूर्णांकों को स्केल कर सकता है: [x * 0.5 for x in range(0, 6)] 0.0 से 2.5 तक परिणाम देता है। इससे NumPy को इम्पोर्ट करने की आवश्यकता नहीं होती है, फिर भी यह चरणबद्ध तरीके से कार्य करता है।ping दशमलव मानों के माध्यम से।

जी हां। एक रेंज ऑब्जेक्ट केवल अपने प्रारंभ, समापन और चरण मानों को संग्रहीत करता है, इसलिए range(1000000) भी range(10) के समान ही बहुत कम और स्थिर मात्रा में मेमोरी का उपयोग करता है। पुनरावृति के दौरान मानों की गणना एक-एक करके की जाती है।

in ऑपरेटर का उपयोग करें: 5 in range(0, 10) True लौटाता है। रेंज ऑब्जेक्ट के लिए, Python यह सदस्यता परीक्षण प्रत्येक तत्व को स्कैन करने के बजाय स्थिर समय में तीव्र अंकगणित के साथ करता है, इसलिए यह विशाल श्रेणियों पर भी कुशल बना रहता है।

मशीन लर्निंग कोड ट्रेनिंग इपोक पर लूप करने, मिनी-बैच को दोहराने और हाइपरपैरामीटर ग्रिड बनाने के लिए range() फ़ंक्शन का उपयोग करता है। NumPy के arange() और linspace() फ़ंक्शन इसे फ्लोटिंग-पॉइंट रेंज तक विस्तारित करते हैं, जिनका उपयोग AI प्रयोगों में आम लर्निंग-रेट शेड्यूल और थ्रेशोल्ड स्वीप के लिए किया जाता है।

हाँ। GitHub Copilot जैसे AI कोडिंग सहायक किसी टिप्पणी या फ़ंक्शन नाम से range()-आधारित लूप को स्वतः पूर्ण कर देते हैं, और एजेंटिक उपकरण इंडेक्स लूप को स्वच्छ enumerate() या comprehension पैटर्न में बदल सकते हैं, हालाँकि उत्पन्न सीमाओं की त्वरित समीक्षा की आवश्यकता होती है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: