payment by upi: sinhamit@icici or payment by bank account name: amit kumar sinha, account number: 2646728782 IFSC code: KKBK0005660 SWIFT: KKBKINBB

Please support if you like my work by payment through upi: sinhamit@icici or payment by bank

account name: Amit Kumar Sinha,
account number: 2646728782
IFSC code: KKBK0005660
SWIFT: KKBKINBB


Loops   in Category: पाइथन   by amit

🕙 Posted on 2023-07-06 at 14:44:53


पायथन में लूप्स

    लूप (LOOP) एक नियंत्रण संरचना है, जो कुछ शर्तों को पूरा करने पर कोड के एक ब्लॉक को दोहराता है। जब वह शर्त False बन जाता है, या LOOP के अंदर break स्टेटमेंट का उपयोग किया जाता है, तो वह लूप कोड के ब्लॉक को निष्पादित करना बंद कर देता है। लूप दो प्रकार के होते हैं − (a) निश्चित/परिमित (Definite/Finite), और (b) अनिश्चित (Indefinite) या अनंत (Infinite) लूप।

    PHP और JavaScript के विपरीत, Python में केवल दो प्रकार के लूप होते हैं − (1) whileऔर (2) forwhile लूप सामान्य लूप की तरह व्यवहार करता है जिसमें आपको (i) आरंभीकरण (initiali­zation), (ii) सशर्त अभिव्यक्ति (condit­ional expression), और (iii) पुनरावृत्ति (iteration) घोषित करना होता है। हालाँकि, for लूप केवल आइटम्स या वर्णों (अनुक्रमों sequences) के संग्रह (collection) पर काम करता है, और इस प्रकार, यह PHP और जावास्क्रिप्ट जैसी अन्य प्रोग्रामिंग भाषाओं में foreach लूप की तरह व्यवहार करता है।

while लूप

    निम्नलिखित दो उदाहरण परिमित (finite) while लूप के प्रारूपिक (आदर्श रूप) चित्रण हैं, जहां आपको (i) संख्यात्मक डेटा-प्रकार चर (variable) प्रारंभ (initialize) करना है, (ii) while कीवर्ड के बाद शर्त रखना है, और (iii) : (कोलन) प्रतीक के बाद, अगली पंक्ति में, कोड-ब्लॉक के अंदर, संख्यात्मक डेटा-प्रकार चर को पुनरावृत्त (iterate) (या तो वृद्धि increment या कमी decrement) करना है। जब शर्त False हो जाता है, तो while लूप ब्लॉक से बाहर निकल जाता है।

num = 0                   # आरंभीकरण (initial­ization)
while num < 10:
  print( num )          # print() फ़ंक्शन स्वचालित रूप से नई पंक्ति में परिणाम आउटपुट करता है
  num = num + 1     # पुनरावृत्ति (iteration)
print( "Outside while loop: ", num )     # while लूप के बाहर

num = 0                   # आरंभीकरण
while num > -10:
  print( num )
  num -= 1                 # पुनरावृत्ति
print( "Outside while loop: ", num )     # while लूप के बाहर

    पायथन में कोई ++ या -- ऑपरेटर नहीं है, इसलिए, आपको या तो अंकगणित (arithe­matic) ऑपरेटर, या अंकगणितीय असाइनमेंट (arithe­matic assignment) ऑपरेटर का उपयोग करना चाहिए। आप उपरोक्त दोनों उदाहरणों को .py एक्सटेंशन वाली फ़ाइल में कॉपी और सेव कर सकते हैं, उदाहरण के लिए, अपने प्रोजेक्ट फ़ोल्डर में, new.py और फिर इसे चलाएं/निष्पादित (run/execute) करें (विंडोज़ के लिए, python या py का उपयोग करें, और मैक/लिनक्स के लिए, आप python या py के बजाय python3.10 कीवर्ड का उपयोग कर सकते हैं)। दोनों उदाहरणों का आउटपुट (जब उन्हें एक साथ निष्पादित किया जाता है), निम्नलिखित प्रकार हैं −

C:\xampp\htdocs\python2023>py new.py
0
1
2
3
4
5
6
7
8
9
Outside while loop: 10
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
Outside while loop: -10

    ऐसे कई तरीके हैं जिनसे आप ऑपरेशन कर सकते हैं, जैसे कि प्रत्येक संख्या का वर्ग (square) ** 2, वर्ग-मूल (square-root) ** (1/2), घन (cube) ** 3, या घन-मूल (cube-root) ** (1/3), आदि खोजना।

num = 0
while num < 10:
  num += 1
  print( num ** 2 )   # प्रत्येक संख्या का वर्ग (square) प्रदर्शित किया जाएगा
print( "Outside while loop: ", num )

    जब while लूप में शर्त का मूल्यांकन False के रूप में किया जाता है, तब कई प्रोग्रामर while ब्लॉक के बाद, else कीवर्ड का, कुछ स्टेटमेंट (इंडेंटेशन के भीतर कोड को) निष्पादित/चलाने के लिए, उपयोग भी करते हैं। वेब डेवलप­मेंट और अन्य अनुप्रयोगों (applica­tions) में, आपको ऐसी स्थितियों का सामना करना पड़ सकता है, और इसलिए आप भी while ब्लॉक के बाद else कीवर्ड का उपयोग कर सकते हैं। उदाहरण के लिए −

num = 0
while num > 10:
  num += 1
  print( num ** (1/2) )   # प्रत्येक संख्या का वर्गमूल (square-root) प्रदर्शित किया जाएगा।
else:
  print( "The condition is False, therefore, num is ", num )
print( "The statement in this line, has no connection with while loop." )   # इस पंक्ति की कथन का while लूप से कोई संबंध नहीं है।

    जब आप > (इससे बड़ा) ऑपरेटर को < (इससे कम) से बदलते हैं, तो उपरोक्त उदाहरण 1 से 10 तक प्रत्येक संख्या के वर्ग-मूल को आउटपुट करेगा (जब > और < ऑपरेटर दोनों का एक-एक करके उपयोग किया जाता है तो परिणाम नीचे देखें)else कीवर्ड तब भी परिणाम आउटपुट करता है, जब प्रोग्राम के अंत में शर्त का मूल्यांकन False के रूप में किया जाता है। यह if else या if elif else कोड के ब्लॉक से भिन्न है जहां कथनों का केवल एक सेट (या तो if, elif या else के बाद) आउटपुट होता है।

C:\xampp\htdocs\python2023>py new.py
The condition is False, therefore, num is 0
The statement in this line, has no connection with while loop.

C:\xampp\htdocs\python2023>py new.py
1.0
1.4142135623730951
1.7320508075688772
2.0
2.23606797749979
2.449489742783178
2.6457513110645907
2.8284271247461903
3.0
3.1622776601683795
The condition is False, therefore, num is 10
The statement in this line, has no connection with while loop.

संपूर्ण (Exhaustive) लूप

    निम्नलिखित उदाहरण में, while लूप में शर्त का मूल्यांकन True के रूप में किया जाता है, और (जब शर्त 3 के बराबर होगा) एक नेस्टेड if ब्लॉक को लूप के अन्दर break करने (छोड़ने) के लिए डाला जाता है । इस उदाहरण में, else ब्लॉक (कोड की एक या अधिक पंक्ति) निष्पादित नहीं किया जाएगा। if शर्त के नीचे दिए गए कथन में चार रिक्त स्थान इंडेंट किए गए हैं। जब आप if शर्त और उसके नीचे इंडेंटेड स्टेटमेंट (break) को टिप्पणी करते हैं, तो while लूप पूरी तरह से (पूर्णतः) समाप्त (Exhaustive) हो जाएगा।

num = 0
while num < 10:
  num += 1
  print( num ** (1/3) )   # प्रत्येक संख्या के घन-मूल प्रदर्शित किए जाएंगे।
  if num == 3:
    break
else:
  print( "The condition is False, therefore, num is ", num )
print( "The loop is broken by the break keyword." )   # लूप को break कीवर्ड द्वारा छोड़ दिया गया है।

अनंत while लूप

Caution (चेतावनी): उपरोक्त प्रत्येक उदाहरण में, while लूप को उसके पहले प्रारंभ किए गए वेरिएबल नाम, num को बढ़ाकर या घटाकर पुनरावृत्त किया गया है। आप देख सकते हैं कि while शर्त के नीचे कोड के प्रत्येक ब्लॉक में, कथन num += 1 या num -= 1 अन्य कथनों के पहले या बाद में रखा गया है।

    जब आप या तो इस पुनरावृत्ति कथन, अर्थात num += 1 या num -= 1, को हटा देते हैं, या कुछ स्थितियों में, पुनरावृत्ति कथन को ऐसे जगह रखा जाता है ताकि इसे निष्पादित न किया जा सके; तो while लूप अनंत लूप बन जाएगा। जब आप ऐसे प्रोग्राम को चलाते/निष्पादित करते हैं, तो कंप्यूटर प्रोसेसर (सीपीयू) की गति और रैम की मेमोरी साइज के आधार पर परिणाम को अनिश्चित काल तक आउटपुट करता रहेगा।

    प्रोग्राम को समाप्त/बंद (terminate/stop) करने के लिए आपको Ctrl C या Cmd C कुंजियाँ एक साथ दबानी होंगी। अनंत लूप से बचने के लिए आप नेस्टेड if कंडीशन के ठीक बाद और (हमेशा continue स्टेटमेंट के ऊपर) एक पुनरावृत्ति स्टेटमेंट num += 1 भी रख सकते हैं।

num = 0
while num < 10:
  if num == 3:
    print( num )   # यह कथन अनिश्चित काल तक प्रदर्शित किया जाएगा।
    continue       # continue ब्लॉक के अंदर इसके नीचे के सभी कोड छोड़ देगा।
  num += 1
  print( num ** 3 )   # प्रत्येक संख्या का घन (cube)
else:
  print( "Condition is False, therefore, num is ", num )   # शर्त False है
print( "The loop is skipped by the continue keyword." )   # लूप continue कीवर्ड द्वारा skip (छोड़ा) हुआ है। Ctrl C या Cmd C कुंजियाँ एक साथ दबाएं

अनिश्चित या अनंत लूप्स का व्यावहारिक उपयोग

    वास्तविक दुनिया के वेब अनुप्रयोगों में, उपयोगकर्ता (सार्वजनिक जनता) कुछ कार्य बार-बार करना चाहता है, और प्रोग्रामर को यह नहीं पता होता है कि कोड को कितनी बार निष्पादित किया जाना चाहिए। ऐसी स्थितियों में, अनिश्चित या अनंत लूप बहुत उपयोगी होते हैं, उदाहरण के लिए −

while True:
  num = int( input( "Please enter a number between 1 and 10. Thereafter, press 'Enter' or 'Return' key: " ) ) # कृपया 1 और 10 के बीच कोई संख्या दर्ज करें। इसके बाद, 'Enter' या 'Return' कुंजी दबाएँ
  if num == 5:
    break
print( "You played the game. Bye!" )

    उपरोक्त उदाहरण में, while शर्त का मूल्यांकन हमेशा True के रूप में किया जाता है। इसलिए, यह एक अनंत लूप है, जिसमें जनता (उपयोगकर्ता) को एक निश्चित संख्या input करने के लिए कहा गया है। याद रखें कि input() फ़ंक्शन हमेशा एक स्ट्रिंग डेटा-प्रकार लौटाता है। इसलिए, किसी भी संख्यात्मक मान के साथ इसकी तुलना करने के लिए, आपको लौटाए गए मान को int() या float() इन-बिल्ट फ़ंक्शंस के साथ टाइप-कास्ट करना होगा। जब उपयोगकर्ता 5 दर्ज करेगा और Enter या Return कुंजी दबाएगा, तो अनंत while लूप समाप्त हो जाएगा।

for लूप

    for लूप केवल अनुक्रम (sequence) डेटा-प्रकारों पर काम करता है, जैसे स्ट्रिंग, सूची (list), टुपल (tuple) इत्यादि। निम्नलिखित उदाहरण में, स्ट्रिंग 'Hello' पांच अक्षरों का अनुक्रम है, और for लूप प्रत्येक अक्षर को नई लाइन में आउटपुट करता है।

string = 'Hello'
for item in string:
  print( item )

C:\xampp\htdocs\python2023>py new.py
H
e
l
l
o

    सूची [] (वर्गाकार कोष्ठकों) के भीतर संलग्न वस्तुओं का संग्रह है। यहां नीचे उदाहरण के तौर पर अभाज्य (prime) संख्याओं की एक सूची दिखाई गई है। आप अगले पृष्ठों में विभिन्न डेटा-प्रकारों, while और for लूपों के अनुप्रयोग के बारे में अधिक जानेंगे।

for number in [1, 2, 3, 5, 7, 11, 13, 17, 19]:
  print( number )

C:\xampp\htdocs\python2023>py new.py
1
2
3
5
7
11
13
17
19


Leave a Comment: