भाव का संयोजन एक टपल अल्पविराम टोकन का उपयोग बनाने के लिए एक expression_list
कहा जाता है:
यहाँ एक उदाहरण है कि मुझे हाल ही में हैरान कर दिया है। operator precedence के नियम अभिव्यक्ति सूचियों को शामिल नहीं करते हैं; ऐसा इसलिए है क्योंकि अभिव्यक्ति सूचियां स्वयं अभिव्यक्ति नहीं हैं; जब वे कोष्ठक में संलग्न होते हैं तो वे अभिव्यक्ति बन जाते हैं।
तो, एक unenclosed expression_list
अजगर में कहीं भी अनुमति दी है कि यह विशेष रूप से भाषा व्याकरण द्वारा अनुमति दी है, लेकिन जहां इस तरह के रूप में एक expression
की आवश्यकता नहीं है।
if_stmt ::= "if" expression ":" suite
("elif" expression ":" suite)*
["else" ":" suite]
क्योंकि उत्पादन expression
संदर्भित है, unenclosed expression_list
रों if
बयान के विषय के रूप में अनुमति नहीं है:
उदाहरण के लिए, if statement के व्याकरण इस प्रकार है। हालांकि, for statement एक expression_list
स्वीकार करता है:
for_stmt ::= "for" target_list "in" expression_list ":" suite
["else" ":" suite]
तो निम्न की अनुमति है:
for x in 1, 2, 3:
print(x)
उम्मीद कर सकते हैं मैं इसे 'के लिए कि विशेष रूप से दिलचस्प के, डी में: प्रिंट के' उस मामले में काम करता है। –
[पायथन व्याकरण] (http://docs.python.org/2/reference/grammar.html) आपको दिखाएगा कि * क्या * अनुमति है, उदाहरण के लिए, 'if' कथन में।आपको पूर्ण व्याकरण पर पढ़ना होगा कि यह पता लगाने के लिए कि जहां अनपेक्षित tuples स्वीकार किए जाते हैं, यही कारण है कि मैं इसे एक उत्तर के रूप में पोस्ट नहीं कर रहा हूं। – chepner
... मैं यह समझने में असफल रहा कि आप '0' के साथ विफल होने के लिए * आश्चर्यचकित * कैसे हो सकते थे ... ... पायथन पहचानकर्ताओं को एक (यूनिकोड) अक्षर या अंडरस्कोर से शुरू होना चाहिए और '0' मान्य नहीं है पायथन पहचानकर्ता इसलिए मुझे * अपेक्षित * एक 'सिंटेक्स एरर' होगा। – Bakuriu