2015-08-24 5 views
8

लूप में, पाइथन कैसे तय करता है कि कौन से बयान लूप से संबंधित हैं?पाइथन को कोड के ब्लॉक को कैसे पता चलता है एक लूप में है?

उदाहरण के लिए, सी में, एक लिख सकते हैं:

for(int i=0;i<=n;n++) 
{ // start of block 
     Statment1 
} // end of block 
Statement2 

लेकिन नीचे

for i in range(5): 
    statement1 
statement2 

मेरा इरादा अजगर कोड में है कि statement2 लूप से बाहर है।

पायथन इस ब्लॉक के अंत की पहचान कैसे करेगा? टैब रिक्त स्थान का उपयोग करके?

मैं क्या होता हूं, इसके बारे में उलझन में हूं, खासकर यदि नेस्टेड लूप हैं।

उत्तर

7

यह वास्तव में इंडेंटेशन द्वारा किया जाता है। तो आपके उदाहरण में, statement 1 फॉर-लूप में है, statement 2 नहीं है। जब तक आप कोड में हर जगह एक ही चीज़ का उपयोग नहीं कर रहे हैं, तब तक आप रिक्त स्थान और टैब का इंडेंटेशन के रूप में उपयोग कर सकते हैं।

का एक उदाहरण एक नेस्टेड के लिए लूप:

for i in range(5): 
    for j in range(10): 
     print j 
    print i 
print 'Done!' 

print j जे-के लिए-पाश में किया जाता है। print i i-for-loop में किया जाता है। Done! अंत में, केवल एक बार मुद्रित किया जाएगा।

+0

धन्यवाद मैथीस! – Veerendra

+1

@ वीरेंद्र नोट: इंडेंटेशन ** ** ** का मतलब नहीं है कि इसमें टैब ('\ t') वर्ण होना चाहिए। आप एक साधारण सफेद जगह का उपयोग कर सकते हैं। असल में पाइथन इंडेंट करने का सबसे मानक तरीका एक टैब के बजाय 4 व्हाइटस्पेस का उपयोग करना है (जब आप टैब वर्ण दबाते हैं तो 4 रिक्त स्थान डालने के लिए अपने संपादक को कॉन्फ़िगर करें)। – Bakuriu

+0

@ माथीस 711 मुझे अभी यह पता चला है कि –

3

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

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

PEP-0008 (The style guide for Python) इंडेंटेशन के रूप में 4 रिक्त स्थान का उपयोग करने का सुझाव देता है।

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