पायथन रेंज () फ़ंक्शन: फ्लोट, सूची, लूप उदाहरणों के लिए

विषय - सूची:

Anonim

पायथन रेंज क्या है?

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

उदाहरण रेंज (5) के लिए आप 0,1,2,3,4 मानों का उत्पादन करेंगे। पायथन रेंज () एक बहुत ही उपयोगी कमांड है और ज्यादातर तब उपयोग किया जाता है जब आपको लूप के लिए उपयोग करना पड़ता है।

इस ट्यूटोरियल में, आप सीखेंगे:

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

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

range(start, stop, step)

मापदंडों

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

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

रिटर्न मान इंडेक्स को रोकने के लिए दिए गए प्रारंभ से संख्याओं का एक क्रम है।

पायथन रेंज () फ़ंक्शन और इतिहास

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

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

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

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

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

यह उदाहरण दिखाता है कि रेंज () का उपयोग करके 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 से शुरू होकर स्टॉप वैल्यू तक होगा। अनुक्रम में अंतिम मान स्टॉप वैल्यू 10-1 = 9 से 1 कम होगा।

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

आउटपुट:

3 4 5 6 7 8 9

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

प्रारंभ मूल्य 3 है, इसलिए संख्याओं का क्रम 3 पर शुरू होगा। स्टॉप वैल्यू 10 है, इसलिए संख्याओं का क्रम 10:00 बजे बंद हो जाएगा। 9. चरण 2 है, इसलिए अनुक्रम में प्रत्येक मान होगा 2. वेतन वृद्धि नहीं दी गई है। यदि चरण मान नहीं दिया गया है, तो चरण 1 के लिए मान चूक है।

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

आउटपुट:

3 5 7 9

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

एक सकारात्मक कदम का उपयोग करके रेंज में मूल्यों को बढ़ाना।

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

स्टेप वैल्यू को पॉजिटिव इनकैश होना चाहिए, जिसे आप यूट्यूट के रूप में इंक्रीमेंट वैल्यू चाहते हैं।

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

आउटपुट:

1 6 11 16 21 26

रिवर्स रेंज: नकारात्मक कदम का उपयोग करके मानों में कमी।

रेंज में नकारात्मक मान के साथ पैरामीटर चरण () का उपयोग मूल्य-निर्धारण मूल्यों को प्राप्त करने के लिए किया जा सकता है। उदाहरण में स्टेप वैल्यू निगेटिव है, इसलिए आउटपुट दी गई रेंज वैल्यू से घटाया जाएगा।

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

आउटपुट:

15 14 13 12 11 10 9 8 7 6

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

पायथन रेंज में फ्लोटिंग नंबरों का उपयोग करना ()

आइए अब फ्लोटिंग-पॉइंट नंबरों का उपयोग करके रेंज पर काम करें।

उदाहरण:

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

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

आउटपुट है:

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

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

पायथन रेंज () के साथ लूप के लिए उपयोग करना

इस उदाहरण में हम संख्याओं की एक सरणी का उपयोग करेंगे और, आइए देखते हैं कि लूप का उपयोग करके रेंज के अंदर सरणी को पुनरावृत्त कैसे करें?)

उदाहरण:

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 का अर्थ 4 -1 = 3 होगा।

सूची के रूप में पायथन रेंज () का उपयोग करना

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

उदाहरण:

print(list(range(10)))

आउटपुट:

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

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

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

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

उदाहरण:

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

आउटपुट:

Traceback (most recent call last):File "python_range.py", line 1, in 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)

आउटपुट:

012345

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

सूचकांक का उपयोग उस स्थिति में उपलब्ध मूल्य प्राप्त करने के लिए सीमा के साथ किया जाता है। यदि रेंज वैल्यू 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)

आउटपुट:

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)

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

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

उदाहरण:

print(list(range(10)))

आउटपुट:

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

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

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

रेंज () का उपयोग करके इनपुट के रूप में दी गई रेंज में सम संख्याओं की सूची प्राप्त होगी। रेंज () हैं, स्टार्ट 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 मॉड्यूल श्रृंखला () फ़ंक्शन की सहायता से 2 रेंज () फ़ंक्शन को समाप्‍त किया जाएगा।

उदाहरण:

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

आउटपुट:

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

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

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

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

arange(start, stop, step)

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

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

import numpy

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

चरण 2 : NumPy स्थापित करें

pip install numpy

चरण 3 : NumPy का उपयोग करके व्यवस्था का कार्य उदाहरण ()

import numpy as npfor i in np.arange(10):print(i, end =" ")

आउटपुट:

0 1 2 3 4 5 6 7 8 9

NumPy arange () का उपयोग करके फ्लोटिंग पॉइंट नंबर

रेंज () का उपयोग करके फ्लोटिंग पॉइंट सीक्वेंस प्राप्त करना संभव नहीं है, लेकिन न्यूपी अरेंज () का उपयोग करना संभव है।

उदाहरण:

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

import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")

आउटपुट:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

हमें जो आउटपुट मिलता है वह थोड़ा अजीब है, कुछ फ्लोट संख्या 16 दशमलव स्थानों के साथ दिखाई जाती है। यह द्विआधारी प्रारूप में दशमलव फ़्लोटिंग संख्याओं को संग्रहीत करने की जटिलता के कारण होता है। यदि आवश्यक हो तो आप मूल्यों को भी गोल कर सकते हैं और उन्हें उन दशमलव स्थानों तक सीमित कर सकते हैं जिनकी आपको आवश्यकता है।

सारांश:

  • पायथन रेंज () पायथन (3.x) से पायथन के साथ उपलब्ध एक अंतर्निहित फ़ंक्शन है, और यह दिए गए प्रारंभ और स्टॉप इंडेक्स के आधार पर संख्याओं का एक क्रम देता है। यदि स्टार्ट इंडेक्स नहीं दिया जाता है, तो इंडेक्स को 0 माना जाता है, और यह स्टॉप इंडेक्स तक मूल्य में वृद्धि करेगा।
  • पायथन रेंज () को अजगर संस्करण 3 से पेश किया गया है, इससे पहले कि xrange () फ़ंक्शन था।
  • श्रेणी () संख्याओं का अनुक्रम देती है और संख्याओं की सूची लौटाती है। Xrange () फ़ंक्शन एक जनरेटर ऑब्जेक्ट देता है जिसे मूल्यों को प्राप्त करने के लिए फॉर-लूप में लूप करने की आवश्यकता होती है।
  • रेंज में () में पैरामीटर चरण का उपयोग मूल्यों को बढ़ाने / घटाने के लिए किया जा सकता है। डिफ़ॉल्ट रूप से, यह एक सकारात्मक मूल्य है 1. इसलिए यह हमेशा बढ़ा हुआ मूल्य देगा।
  • पायथन फ्लोटिंग-पॉइंट नंबरों के लिए एक त्रुटि देता है क्योंकि रेंज () फ़ंक्शन केवल पूर्णांक मानों का समर्थन करता है।
  • रेंज () के मानों को इंडेक्स और लिस्ट () का उपयोग करके लूप के लिए एक्सेस किया जा सकता है
  • NumPy मॉड्यूल में एक अरेंज () फ़ंक्शन होता है जो काम करता है और समान आउटपुट देता है जैसे रेंज ()। अरेंज () रेंज के समान मापदंडों में लेता है ()।
  • फ्लोटिंग-पॉइंट अनुक्रम NumPy arange () प्राप्त करना संभव है जो कि रेंज () का उपयोग करके समर्थित नहीं है।