Python range() फ़ंक्शन: फ़्लोट, सूची, फ़ॉर लूप उदाहरण
एचएमबी क्या है? Python श्रेणी?
Python range() एक अंतर्निहित फ़ंक्शन है जो उपलब्ध है Python से Python(3.x), और यह दिए गए स्टार्ट और स्टॉप इंडेक्स के आधार पर संख्याओं का एक क्रम देता है। यदि स्टार्ट इंडेक्स नहीं दिया गया है, तो इंडेक्स को 0 माना जाता है, और यह स्टॉप इंडेक्स तक 1 से मूल्य बढ़ाएगा।
उदाहरण के लिए range(5) आपको 0,1,2,3,4 मान आउटपुट करेगा। Python range() एक बहुत ही उपयोगी कमांड है और इसका प्रयोग अधिकतर तब किया जाता है जब आपको for loop का प्रयोग करके पुनरावृति करनी होती है।
वाक्य - विन्यास
range(start, stop, step)
पैरामीटर्स
- शुरू: (वैकल्पिक) प्रारंभिक सूचकांक एक पूर्णांक है, और यदि नहीं दिया गया है, तो डिफ़ॉल्ट मान 0 है।
- रुकें: स्टॉप इंडेक्स वह मान तय करता है जिस पर रेंज फ़ंक्शन को रुकना है। यह रेंज फ़ंक्शन के लिए एक अनिवार्य इनपुट है। अंतिम मान हमेशा स्टॉप मान से 1 कम होगा।
- कदम: (वैकल्पिक).चरण मान वह संख्या है जिसके द्वारा अगली संख्या को बढ़ाया जाना है, डिफ़ॉल्ट रूप से, यह 1 है।
प्रतिलाभ की मात्रा
वापसी मान दिए गए प्रारंभ से अंत सूचकांक तक संख्याओं का अनुक्रम है।
Python range() फ़ंक्शन और इतिहास
Python range() को पायथन संस्करण 3 से पेश किया गया है, इससे पहले xrange() फ़ंक्शन था।
range और xrange() दोनों का उपयोग संख्याओं का अनुक्रम बनाने के लिए किया जाता है।
रेंज और xrange() के बीच अंतर निम्नलिखित हैं:
रेंज () | एक्सरेंज () |
---|---|
range() संख्याओं का अनुक्रम देता है और संख्याओं की सूची लौटाता है। | xrange() फ़ंक्शन एक जेनरेटर ऑब्जेक्ट देता है जिसे मान प्राप्त करने के लिए for-लूप में लूप करना पड़ता है। |
range() एक सूची लौटाता है. | xrange() एक जनरेटर ऑब्जेक्ट लौटाता है. |
xrange() की तुलना में range() विधि अधिक मेमोरी का उपयोग करती है, क्योंकि लौटाई गई सूची को संग्रहित करना पड़ता है। | चूंकि xrange() एक जनरेटर ऑब्जेक्ट लौटाता है, यह तुरंत मान नहीं देता है और मान प्राप्त करने के लिए इसे for-loop के अंदर उपयोग करना पड़ता है। |
मेमोरी का उपयोग अधिक होता है, इसलिए विशाल डेटा पर काम करते समय कोड निष्पादन धीमा होता है। | 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
Revएर्स रेंज: ऋणात्मक चरण का उपयोग करके मान घटाना
रेंज() में नेगेटिव वैल्यू वाले पैरामीटर स्टेप का इस्तेमाल घटे हुए मान प्राप्त करने के लिए किया जा सकता है। नीचे दिए गए उदाहरण में स्टेप का मान नेगेटिव है, इसलिए आउटपुट दिए गए रेंज मान से घटेगा।
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-loop के अंदर सरणी को कैसे पुनरावृत्त किया जाए।
उदाहरण:
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() के लिए पैरामीटर हैं, प्रारंभ 2 है, स्टॉप 20 है, और चरण 2 है, इसलिए मान 2 से बढ़ेंगे और स्टॉप-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() जैसा ही आउटपुट देता है। arrange() भी 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 दशमलव स्थानों के साथ दिखाए जाते हैं। ऐसा दशमलव फ्लोटिंग नंबरों को बाइनरी प्रारूप में संग्रहीत करने की जटिलता के कारण होता है। यदि आवश्यक हो तो आप मानों को गोल भी कर सकते हैं और उन्हें अपनी ज़रूरत के अनुसार दशमलव स्थानों तक सीमित कर सकते हैं।
सारांश
- Python range() एक अंतर्निहित फ़ंक्शन है जो उपलब्ध है Python से Python(3.x), और यह दिए गए स्टार्ट और स्टॉप इंडेक्स के आधार पर संख्याओं का एक क्रम देता है। यदि स्टार्ट इंडेक्स नहीं दिया गया है, तो इंडेक्स को 0 माना जाता है, और यह स्टॉप इंडेक्स तक मूल्य में वृद्धि करेगा।
- Python range() को शुरू किया गया है पायथन संस्करण 3, उससे पहले xrange() फ़ंक्शन था।
- range() संख्याओं का अनुक्रम देता है और संख्याओं की सूची लौटाता है। xrange() फ़ंक्शन एक जनरेटर ऑब्जेक्ट देता है जिसे मान प्राप्त करने के लिए for-loop में लूप किया जाना चाहिए।
- range() में पैरामीटर step का उपयोग मानों को बढ़ाने/घटाने के लिए किया जा सकता है। डिफ़ॉल्ट रूप से, यह एक सकारात्मक मान 1 है। इसलिए यह हमेशा बढ़े हुए मान देगा।
- Python फ़्लोटिंग-पॉइंट संख्याओं के लिए त्रुटि देता है क्योंकि range() फ़ंक्शन केवल पूर्णांक मानों का समर्थन करता है।
- range() से मानों को for-loop, index और list() का उपयोग करके एक्सेस किया जा सकता है
- NumPy मॉड्यूल में arange() फ़ंक्शन है जो काम करता है और range() जैसा ही आउटपुट देता है। arange(), range() के समान ही पैरामीटर लेता है।
- फ़्लोटिंग-पॉइंट अनुक्रम NumPy arange() प्राप्त करना संभव है जो range() का उपयोग करके समर्थित नहीं है।