2012-02-28 14 views
136

वहाँ उदाहरणक्या पाइथन में लूप के लिए 'जारी रखें' और 'पास` के बीच कोई अंतर है?

for element in some_list: 
    if not element: 
     pass 

और

for element in some_list: 
    if not element: 
     continue 

मैं के बारे में पता होना चाहिए में दो अजगर कीवर्ड के बीच continue और pass तरह के बीच कोई महत्वपूर्ण अंतर है?

+4

@ एसएलओटी: उदाहरण: 'जबकि सत्य :; पास करें [कीबोर्ड पाउडर] में कीबोर्ड इंटरप्ट (Ctrl + C) 'के लिए व्यस्त-प्रतीक्षा करें (http://docs.python.org/tutorial/controlflow.html#pass-statements) ने मुझे रास्ते में भ्रमित कर दिया, मैंने किया यह स्पष्ट मौसम नहीं ढूंढता है यह इस मामले में जारी रखने के बराबर व्यवहार करता है या कुछ और इरादा था। पहली वाक्य * "पास स्टेटमेंट कुछ भी नहीं करता है।" * मेरे प्रश्न के सभी उत्तरों की विशेषता है, लेकिन किसी भी तरह से यह मेरी आंख को पकड़ नहीं पाया। – Aufwind

उत्तर

213

हां, वे पूरी तरह से अलग-अलग चीजें करते हैं। pass बस कुछ भी नहीं करता है, जबकि continue अगले लूप पुनरावृत्ति के साथ चला जाता है। आपके उदाहरण में, यदि आप if के बाद एक और कथन जोड़ते हैं तो अंतर स्पष्ट हो जाएगा: pass निष्पादित करने के बाद, यह और कथन निष्पादित किया जाएगा। continue के बाद, यह नहीं होगा।

>>> a = [0, 1, 2] 
>>> for element in a: 
...  if not element: 
...   pass 
...  print element 
... 
0 
1 
2 
>>> for element in a: 
...  if not element: 
...   continue 
...  print element 
... 
1 
2 
+2

मैं पूरी तरह से आपके उत्तर से सहमत हूं। लेकिन पास अभी भी पास कीवर्ड के बारे में सवाल है क्या इसकी आवश्यकता है? और जरूरत है लेकिन क्यों? धन्यवाद –

+12

@ हार्दिक गज्जर: चूंकि 'पास' कीवर्ड कुछ भी नहीं करता है, इसलिए यह केवल तब उपयोगी होता है जब आपको सिंटैक्टिक रूप से इंडेंट सूट की आवश्यकता होती है, लेकिन कुछ भी नहीं करना चाहते हैं। एक आम उदाहरण यह है कि यदि आप कुछ अपवाद को अनदेखा करना चाहते हैं, तो आप 'कुछ अपवाद: पास' को छोड़कर' का उपयोग करते हैं। कई अन्य उपयोग के मामले भी हैं। इसके लिए आपको सख्ती से एक कीवर्ड की आवश्यकता नहीं होगी, क्योंकि आप किसी भी अन्य कथन का उपयोग कर सकते हैं जो कुछ भी नहीं करता है (उदाहरण के लिए '0' एक पूर्ण वैध कथन है जिसका प्रभाव नहीं है), लेकिन इसके लिए कोई कीवर्ड रखने की अनुमति है आप कुछ भी करने के इच्छुक नहीं होने के बारे में अधिक स्पष्ट होना चाहते हैं। –

3

उन उदाहरणों में, नहीं। यदि कथन लूप में बहुत अंतिम है तो उनके पास बहुत विभिन्न प्रभाव हैं।

6

continue लूप के शीर्ष पर वापस कूद जाएगा। pass प्रसंस्करण जारी रहेगा।

यदि पास लूप के अंत में पास है, तो अंतर नगण्य है क्योंकि प्रवाह अभी भी लूप के शीर्ष पर वापस आ जाएगा।

7

आपके उदाहरण में, कोई अंतर नहीं होगा, क्योंकि दोनों कथन लूप के अंत में दिखाई देते हैं। pass बस प्लेसहोल्डर है, इसमें कुछ भी नहीं है (यह अगले कथन में निष्पादन पास करता है)। दूसरी तरफ continue का एक निश्चित उद्देश्य है: यह लूप को पर जारी रखता है जैसे कि यह अभी पुनरारंभ हुआ था।

for element in some_list: 
    if not element: 
     pass 
    print element 

for element in some_list: 
    if not element: 
     continue 
    print element 
45

हाँ से बहुत अलग है, वहाँ एक अंतर है। continue लूप को अगले पुनरावृत्ति पर शुरू करने के लिए मजबूर करता है जबकि pass का अर्थ है "यहां निष्पादित करने के लिए कोई कोड नहीं है" और शेष या लूप बॉडी के माध्यम से जारी रहेगा। इन और अंतर देखना

रन:

for element in some_list: 
    if not element: 
     pass 
    print 1 # will print after pass 

for element in some_list: 
    if not element: 
     continue 
    print 1 # will not print after continue 
4

हाँ, वहाँ एक अंतर है। Continue वास्तव में लूप के वर्तमान पुनरावृत्ति के बाकी हिस्सों को छोड़ देता है (शुरुआत में लौट रहा है)। Pass एक खाली कथन है जो कुछ भी नहीं करता है।

देखें python docs

1

वहाँ उन दोनों के बीच एक अंतर है,
continue पाश की वर्तमान यात्रा छोड़ देता है और अगले चरण निष्पादित करता है।
pass कुछ भी नहीं करता है। यह एक खाली कथन प्लेसहोल्डर है।
मैं आपको एक उदाहरण दूंगा, जो इसे और बेहतर साबित करेगा।

>>> for element in some_list: 
...  if element == 1: 
...   print "Pass executed" 
...   pass 
...  print element 
... 
0 
Pass executed 
1 
2 

>>> for element in some_list: 
...  if element == 1: 
...   print "Continue executed" 
...   continue 
...  print element 
... 
0 
Continue executed 
2 
0
x = [1,2,3,4] 
for i in x: 
    if i==2: 
     pass #Pass actually does nothing. It continues to execute statements below it. 
     print "This statement is from pass." 
for i in x: 
    if i==2: 
     continue #Continue gets back to top of the loop.And statements below continue are executed. 
     print "This statement is from continue." 

उत्पादन

>>> This statement is from pass. 

फिर दें मामूली परिवर्तन के साथ एक ही कोड चल रहा है।

x = [1,2,3,4] 
for i in x: 
    if i==2: 
     pass #Pass actually does nothing. It continues to execute statements below it. 
    print "This statement is from pass." 
for i in x: 
    if i==2: 
     continue #Continue gets back to top of the loop.And statements below continue are executed. 
    print "This statement is from continue." 

उत्पादन होता है -

>>> This statement is from pass. 
This statement is from pass. 
This statement is from pass. 
This statement is from pass. 
This statement is from continue. 
This statement is from continue. 
This statement is from continue. 

पास कुछ भी नहीं है। गणना अप्रभावित है। लेकिन अगले गणना के साथ प्राप्त करने के लिए लूप के शीर्ष पर वापस आना जारी रखें।

+3

अन्य उत्तरों के साथ पहले से ही विशेष अंतर क्या है? –

संबंधित मुद्दे