दिलचस्प पोस्ट
GoogleMap एंड्रॉइड एपीआई वी 2 के स्क्रीन शॉट को कैप्चर करें मेरे जेएसपी पृष्ठ में स्क्रिप्टलेट्स का उपयोग करने से कैसे बचें? HTTP हेडर लाइन ब्रेक शैली पायथन पर "एट" (@) प्रतीक क्या करता है? आरम्भिकरण ब्लॉक क्या है? स्थानीय नेटवर्क उपयोगकर्ताओं को मेरी WAMP साइटों तक पहुंचने के लिए कैसे सक्षम करें? jqGrid कस्टम प्रारूप addClass पर विफल रहता है सभी विशेष वर्णों की सूची जिसे एक रीजेक्स में बचने की आवश्यकता है क्लाइंट पीसी पर लोकलडीबी परिनियोजन बहुआयामी सरणी और सी # में एरे की एक सरणी के बीच अंतर क्या हैं? अक्षांश / लंबे निर्देशांक को देखते हुए, हम शहर / देश कैसे खोज सकते हैं? इनपुट के अनुसार गतिशील दो आयाम सरणी ValidateRequest = "false" एस्पनेट 4 में काम नहीं करता है कोनेरी 2 घटक में बाहरी सीएसएस शैली लोड करें एनसीआरेंज रेंज <String.Index>

इस अजगर स्निपेट में अर्धविराम की अनुमति क्यों है?

पायथन अंत कथन के लिए अर्धविराम के उपयोग का आश्वासन नहीं देता है तो यह (नीचे) की अनुमति क्यों है?

import pdb; pdb.set_trace() 

वेब के समाधान से एकत्रित समाधान "इस अजगर स्निपेट में अर्धविराम की अनुमति क्यों है?"

अजगर को बयान समाप्त करने के लिए अर्द्ध-कोलन की आवश्यकता नहीं है । यदि आप एक ही पंक्ति में एक से अधिक वक्तव्य देना चाहते हैं तो अर्ध कॉलन का उपयोग बयानों को सीमांकित करने के लिए किया जा सकता है।

अब, यह क्यों अनुमति है? यह एक सरल डिजाइन निर्णय है। मुझे नहीं लगता कि पायथन को इस अर्द्ध-बृहदान्त्र की जरूरत है, लेकिन किसी ने सोचा कि यह अच्छा होगा और उसे भाषा में जोड़ दिया जाएगा।

http://docs.python.org/reference/compound_stmts.html

कम्पाउंड स्टेटमेंट में एक या एक से अधिक 'क्लॉज' होते हैं। एक खण्ड में शीर्ष लेख और 'सूट' होता है। एक विशेष मिश्रित विवरण के खंड हेडर समान इंडेंटेशन स्तर पर हैं प्रत्येक खंड शीर्षक एक विशिष्ट पहचान वाले कीवर्ड के साथ शुरू होता है और एक बृहदान्त्र के साथ समाप्त होता है। एक सूट एक खंड द्वारा नियंत्रित बयानों का एक समूह है। एक सूट हेडर के बृहदान्त्र के बाद एक ही पंक्ति पर एक या एक से अधिक अर्धविराम-पृथक सरल विवरण हो सकता है, या बाद की रेखाओं पर एक या अधिक इंडेंट किए गए स्टेटमेंट हो सकते हैं । केवल सूट का उत्तरार्द्ध रूप में नेस्टेड कम्पाउंड स्टेटमेंट हो सकते हैं; निम्न गैरकानूनी है, ज्यादातर क्योंकि यह स्पष्ट नहीं होगा कि यदि किसी अन्य खंड के खंड का संबंध होगा:

 if test1: if test2: print x 

यह भी ध्यान रखें कि अर्धविराम इस संदर्भ में बृहदान्त्र की तुलना में अधिक कठोर हो जाता है, ताकि निम्नलिखित उदाहरण में, या तो सभी या कोई भी प्रिंट स्टेटमेंट निष्पादित हो जाएंगे:

 if x < y < z: print x; print y; print z 

सारांश:

 compound_stmt ::= if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT statement ::= stmt_list NEWLINE | compound_stmt stmt_list ::= simple_stmt (";" simple_stmt)* [";"] 

पायथन का उपयोग करता है ; एक विभाजक के रूप में, टर्मिनेटर नहीं। आप उन्हें एक पंक्ति के अंत में भी इस्तेमाल कर सकते हैं, जो उन्हें एक वक्तव्य टर्मिनेटर की तरह दिखते हैं, लेकिन यह केवल कानूनी है क्योंकि रिक्त बयान पायथन में कानूनी हैं – एक पंक्ति जिसमें अंत में अर्धविराम होता है, दो कथन, दूसरा एक रिक्त

दुभाषिया में अर्धविराम

जवाब पढ़ने के बाद, मुझे अब भी अर्धविरामों का उपयोग करने का एक महत्वपूर्ण पहलू याद है, संभवत: केवल एक ही जहां यह वास्तव में एक अंतर बनाता है …

जब आप एक दुभाषिया REPL (पायथन इंटरेक्टिव शैल, आईडीईई, आईप्याथोन) में काम कर रहे हैं, तो अंतिम अभिव्यक्ति का मान स्क्रीन पर मुद्रित होता है और आमतौर पर यह वांछित व्यवहार होता है।

साइड इफेक्ट्स के लिए अभिव्यक्ति का उपयोग करना

लेकिन कुछ मामलों में आप केवल इसके दुष्प्रभावों के लिए एक अभिव्यक्ति का मूल्यांकन करना चाहते हैं, उदाहरण के लिए, matplotlib द्वारा matplotlib आपके अनुकरण के परिणाम देखने के लिए।

इस मामले में आप शायद (शायद) किसी भी matplotlib फ़ंक्शन के कॉल के द्वारा कभी-कभी वापस आने वाले matplotlib ऑब्जेक्ट्स के matplotlib को देखने के लिए नहीं देखना चाहते हैं और आपके पास संभावित संभावनाओं में से एक अर्धविराम को अतिप्रभावी वर्बोज़ स्टेटमेंट में जोड़ना है, कि तुरंत दो भाव, matplotlib अभिवादन और एक अशक्त बयान, जिससे कि मिश्रित अभिव्यक्ति का मान None और स्क्रीन पर स्क्रीन पर कुछ भी छपने वाला नहीं है (दूसरी संभावना असाइनमेंट , जैसा कि _ = plot(...) लेकिन मुझे लगता है कि थोड़ा अधिक घुसपैठ)।

व्यक्तिगत टिप्पणी

आईएमएचओ, इंटरप्रीटर में वांछित उत्पादन को दबाने के लिए सेमीकोलन का उपयोग आईप्याटन नोटबुक की शुरूआत के बाद अधिक प्रासंगिक हो गया है, जो इनपुट और आउटपुट को सहेजने की अनुमति देता है, जिसमें ग्राफिकल आउटपुट, दस्तावेज़ीकरण के लिए एक दुभाषिया सत्र और अंतिम पुन: उपयोग ।

जैसा कि हर किसी ने उल्लेख किया है, आप अलग-अलग बयानों के लिए अर्धविराम का उपयोग कर सकते हैं। आपको नहीं करना है, और यह सामान्य शैली नहीं है

यह क्यों उपयोगी है, कुछ लोगों को एक पंक्ति पर दो या अधिक वास्तव में तुच्छ लघु बयान देना पसंद है (व्यक्तिगत रूप से मुझे लगता है कि यह कई जटिल आसानी से स्किम्ड लाइनों को एक जटिल दिखने वाली रेखा में बदल देता है और यह देखना कठिन होता है कि यह तुच्छ है) ।

लेकिन यह लगभग एक आवश्यकता है जब आप python -c '<some python code>' का उपयोग करके खोल से पायथन एक लाइनर्स को लागू कर रहे हैं। यहां आप अलग-अलग बयानों के लिए इंडेंटेशन का उपयोग नहीं कर सकते हैं , इसलिए यदि आपका एक-लाइनर वाकई दो-लाइनर है, तो आपको एक अर्धविराम का उपयोग करना होगा। और अगर आप अपने एक-लाइनर में अन्य तर्कों का उपयोग करना चाहते हैं, तो आपको sys.argv पर प्राप्त करने के लिए sys आयात करना होगा, जिसके लिए अलग import स्टेटमेंट की आवश्यकता होती है। जैसे

 python -c "import sys; print ' '.join(sorted(sys.argv[1:]))" 5 2 3 1 4 1 2 3 4 5 

" जब पायथन एटैक " से एक उद्धरण

अपने सभी बयानों को अर्धविराम के साथ समाप्त न करें यह पायथन में ऐसा करने के लिए तकनीकी तौर पर कानूनी है, लेकिन पूरी तरह से बेकार है जब तक कि आप एक पंक्ति में एक से अधिक कथन डाल रहे हों (जैसे, x = 1; y = 2; z = 3)।

एक पंक्ति में कई बयानों में विभाजक के रूप में अर्धविराम शामिल हो सकते हैं। उदाहरण के लिए: http://docs.python.org/reference/compound_stmts.html आपके मामले में, यह डीबगर में तोड़ने के लिए एक बिंदु के आसान प्रविष्टि के लिए बनाता है

इसके अलावा, जैसा कि लर्निंग पाइथन बुक में मार्क लुट्ज़ द्वारा उल्लिखित है, यह तकनीकी रूप से कानूनी है (हालांकि अनावश्यक और कष्टप्रद) ताकि आपके सभी बयानों को अर्धविरामों के साथ समाप्त किया जा सके।

यदि आप एक पंक्ति पर एक से अधिक कथन शामिल कर रहे हैं तो पायथन आपको एक बयान के अंत को दर्शाने के लिए एक अर्द्ध-बृहदान्त्र का उपयोग करने देता है

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

अर्धविराम (;) एक पंक्ति पर कई बयानों की अनुमति देता है, न कि कोई नॉनमेंट एक नया कोड ब्लॉक शुरू करता है।

http://www.tutorialspoint.com/python/python_basic_syntax.htm

अर्धविराम (जैसे डॉट्स, कॉमा और कोष्ठक) धार्मिक युद्धों का कारण बनते हैं। फिर भी, वे (या कुछ इसी तरह के प्रतीक) विभिन्न कारणों से किसी भी प्रोग्रामिंग भाषा में उपयोगी होते हैं।

  • व्यावहारिक: कई छोटी आज्ञाओं को एक ही पंक्ति पर अवधारणात्मक रूप से एक साथ रखने की क्षमता। एक प्रोग्राम पाठ जो एक संकीर्ण साँप की तरह लग रहा है, उस पर प्रतिकूल प्रभाव पड़ता है जो कि न्यूलाइन और इंडेंटेशन द्वारा किया गया है, जो संरचना को उजागर कर रहा है।

  • संकल्पनात्मक: प्रस्तुति से शुद्ध वाक्यविन्यास (इस मामले में, आदेशों के अनुक्रम के लिए) के बीच अलग-अलग होने के कारण "सुंदर-मुद्रण" नामक पुराने दिनों में,

अवलोकन: संरचना को हाइलाइट करने के लिए, स्पष्ट रूप से ऊर्ध्वाधर पंक्तियों द्वारा इंडेंटेशन / प्रतिस्थापित किया जा सकता है, यह देखने के लिए कि एक इंडेंटेन्टेशन आरंभ और समाप्त होता है, जहां "विज़ुअल शासक" के रूप में सेवा कर रहा है। विभिन्न रंग (जैसे प्रतिरोधों के लिए रंग कोड के बाद) भीड़ के लिए क्षतिपूर्ति कर सकते हैं।

अर्धविराम मान्य वाक्यविन्यास का हिस्सा हैं: http://docs.python.org/reference/compound_stmts.html