मैं वर्तमान में लिंडा अजगर ट्यूटोरियल के माध्यम से और जनरेटर मैं निम्नलिखित कोड को देखने पर खंड में जा रहा हूँ:पाइथन: यदि और अन्य के बीच लूप के लिए, यह कैसे काम करता है?
def isprime(n):
if n == 1:
return False
for x in range(2, n):
if n % x == 0:
return False
else:
return True
मैं पहली बार में इसे पकड़ नहीं किया था, लेकिन जैसा कि मैंने कोड मैंने देखा के माध्यम से जा रहा था कि else
कीवर्ड के बीच एक संपूर्ण फॉर-लूप था और उसी इंडेंटेशन स्तर पर if
था। मेरे आश्चर्य के लिए, कोड न केवल चलता है, यह वास्तव में सही व्यवहार पैदा करता है।
यदि मैं फॉर-लूप को एक साधारण print("Hello, World")
कथन के साथ प्रतिस्थापित करना था, तो केवल मुझे अपेक्षित दुभाषिया त्रुटि मिलती है।
इस वाक्यविन्यास के पीछे तर्क क्या था, और यह लूप स्टेटमेंट के साथ क्यों काम करता है लेकिन अन्य print()
जैसे नहीं?
संदर्भ के लिए, मैं अपेक्षा की होगी कोड निम्नलिखित की तरह लिखा होना चाहिए:
def isprime(n):
if n == 1:
return False
for x in range(2, n):
if n % x == 0:
return False
return True
अच्छी तरह से यह सब मेरे लिए सामान्य दिखता है .. वास्तव में यह आपके द्वारा अपेक्षित तरीके (दूसरे कोड ब्लॉक में) के बराबर है, क्योंकि लूप को कभी भी लूप में नहीं बुलाया जाता है – wim