2010-02-03 5 views
16

क्या कोई अच्छा कारण है कि पाइथन में प्रवाह नियंत्रण कथन के दौरान ऐसा क्यों नहीं किया जाता है?पायथन में प्रवाह नियंत्रण कथन के दौरान ऐसा क्यों नहीं है?

लोगों को while और break क्यों स्पष्ट रूप से लिखना है?

+1

"लिखते समय ... स्पष्ट रूप से"? इसका क्या मतलब है? स्पष्ट रूप से 'जबकि' लिखते समय 'कैसे करते हैं'? मुझे इस सवाल का हिस्सा नहीं मिला है। –

+1

यह जानने की आवश्यकता क्या है? यह फैक्टोइड आपको किसी भी प्रोग्रामिंग समस्याओं को हल करने में कैसे मदद करता है? –

+3

यह एक बहुत अच्छा सवाल है, और नए पायथन उपयोगकर्ताओं के लिए परेशानी का एक आम स्रोत है। –

उत्तर

11

यह PEP 315 में प्रस्तावित किया गया है, लेकिन क्योंकि कोई भी एक वाक्य रचना एक आंतरिक if-break साथ while True से स्पष्ट है कि के साथ आ गया लागू नहीं किया गया।

+1

क्या करना गलत है ... जबकि सच है? – Mavrik

+3

http://mail.python.org/pipermail/python-dev/2006- फरवरी/060718.html पर एक नज़र डालें जो पीईपी से जुड़ा हुआ है। यह कुछ और विस्तार से विभिन्न वाक्यविन्यास विकल्पों के साथ समस्या बताता है। –

10

शायद क्योंकि Guido को नहीं लगता था कि यह आवश्यक था। विभिन्न फ़्लो-कंट्रोल स्टेटमेंट्स का एक समूह है जो आप समर्थन कर सकते हैं, लेकिन उनमें से अधिकतर एक-दूसरे के रूप हैं। स्पष्ट रूप से, मुझे कम उपयोगी लोगों में से एक होने के लिए डू-ऑर्डर स्टेटमेंट मिला है।

+0

+1 के उत्तर का लिंक पढ़ें, मैं लगभग हमेशा अपनी स्थितियों को शीर्ष पर चाहता हूं। 'शून्य मामला' बहुत क्लीनर बनाता है। – Javier

+14

हां, संभवतया गुइडो ने यह नहीं सोचा था कि पास्कल में WHILE –

+1

मैं हमेशा दोहराने तक (स्थिति) का उपयोग करता हूं। सी ++ में मैं शायद ही कभी (हालत) का उपयोग करता हूं। क्या आप इसे समझा सकते हैं? :) –

2

पायथन केवल तभी जोड़ता है जब वे कुछ कोड को सरल बनाते हैं।

while True: 
    ... 
    if not cond: break 

एक do-जबकि पाश, जिसके लिए वहाँ कोई स्पष्ट प्राकृतिक अजगर वाक्य रचना वैसे भी है की तुलना में कम सरल नहीं है।

do: 
    ... 
    while cond 

(अजीब लग रहा है)

या है?

do: 
    ... 
while cond 

(जबकि एक नियमित रूप से करते हुए बयान तरह दिखता है)

+3

'लूप के बीच में एक सशर्त में ब्रेक की एक स्पष्ट' करने ... की तुलना में अधिक कोड पार्सिंग की आवश्यकता होती है ... 'संरचना। तो, कोड पढ़ने को सरल बनाया जाएगा। जैसा कि 'जबकि cond 'अजीब लग रहा है, इसे प्रतिस्थापित' समकक्ष 'तक बदल दिया जा सकता है, जो स्पष्ट होगा। मुझे लगता है कि ऐसा करने के अच्छे कारण हैं ... नियंत्रण संरचना तक, हालांकि; मूल चर्चा पढ़ना शायद उपयोगी होगा। – EOL

3

क्योंकि तो आप कुछ करने के लिए दो तरीके होगा।

+3

एक डू-टाइम/दोहराना-जब तक लूप थोड़ी देर के समान नहीं है। पूर्व हमेशा कम से कम एक बार निष्पादित करेगा, लेकिन उत्तरार्द्ध बिल्कुल निष्पादित नहीं हो सकता है। – GreenMatt

+0

@ ग्रीनमैट, यही वह नहीं है जिसके बारे में वह बात कर रहा है। फिर आपके पास एक शर्त पर मैन्युअल रूप से लूप करने के 2 तरीके होंगे। पूर्व और पोस्ट की स्थिति पाइथन वाक्यविन्यास को विस्तारित करने के लिए पर्याप्त रूप से भिन्न नहीं होती है। –

+0

@ मैट जॉइनर: सबसे पहले, मुझे यह नहीं पता कि ऑस्टिन उस प्रविष्टि के दौरान क्या सोच रहा था। अपनी टिप्पणी को संबोधित करने के लिए: मुझे एहसास है कि सोच यह है कि पायथन को अतिरिक्त लूपिंग संरचना की आवश्यकता नहीं है। मैं केवल अंतर को इंगित कर रहा हूं ताकि कोई अन्य जो अन्यथा नहीं जानता, वह सोचता है कि दो लूपिंग तंत्र बिल्कुल वही काम करते हैं। – GreenMatt

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