दिलचस्प पोस्ट
वह ऑटो-असाइनिंग आईडी रेल करता है जो पहले से मौजूद है मौजूदा गीतम भंडार को एक दूसरे में कैसे आयात करें? जावास्क्रिप्ट और थ्रेड्स यूटीएफ 8 एन्कोडिंग अधिकतम लंबाई 32766 से अधिक है क्या मैं sass के साथ एक बाहरी होस्ट की गई फ़ाइल आयात कर सकता हूं? जावा कतार लागूकरण, जो एक? जावास्क्रिप्ट फंक्शन ऑब्जेक्ट्स के गुण उपप्रक्रिया संवाद (')' के साथ 'हाँ' रिपोर्टिंग त्रुटि ओपनजीएल ईएस दृश्य में एनीमेशन फ्रीज होता है जब यूआईएसक्रोलएव्यू को iPhone पर खींच लिया जाता है स्विफ्ट 3, स्विफ्ट 4, और उससे आगे मैं कैसे डिस्पैच_सिंक, डिस्पैच_असिनक, डिस्पैच-एफ़, आदि भेजूं? कुंज: स्थापना के बाद "आदेश नहीं मिला" सूचकांक की परवाह किए बिना हमेशा पिछली पंक्ति डिफ़ॉल्ट टेलिबल मॉडेल से हटा दी गई थी git, msysgit, लहजे, यूटीएफ -8, निश्चित जवाब PHP मेल () संलग्नक समस्याएं Google छवि खोज: मैं एक रिवर्स छवि खोज URL का निर्माण कैसे करूं?

पायथन 2.7 में प्रिंट स्वैच्छिक में कोष्ठक क्यों है?

पायथन 2.7 में दोनों निम्न ही करेंगे

print("Hello, world!") # Prints "Hello, world!" print "Hello, world!" # Prints "Hello, world!" 

हालांकि निम्नलिखित नहीं होगा

 print("Hello,", "world!") # Prints the tuple: ("Hello,", "world!") print "Hello,", "world!" # Prints the words "Hello, world!" 

पायथन 3.x कोष्ठक में print पर अनिवार्य है, अनिवार्यतः इसे एक फ़ंक्शन बनाते हैं, लेकिन 2.7 में दोनों अलग-अलग परिणामों के साथ काम करेंगे। पायथन 2.7 में print बारे में मुझे और क्या पता होना चाहिए?

वेब के समाधान से एकत्रित समाधान "पायथन 2.7 में प्रिंट स्वैच्छिक में कोष्ठक क्यों है?"

पायथन 2.x print में वास्तव में एक विशेष बयान है और फ़ंक्शन नहीं है *।

यही कारण है कि ऐसा क्यों नहीं किया जा सकता है: lambda x: print x

ध्यान दें कि (expr) एक्सपीआर (expr) एक ट्यूपल नहीं बनाता है (इसका परिणाम एक्सपी में होता है), लेकिन क्या करता है यह संभवतः पायथन 2.7 में print (x) और print (x, y) बीच भ्रम में है

 (1) # 1 -- no tuple Mister! (1,) # (1) (1,2) # (1,2) 1,2 # 1 2 -- no tuple and no parenthesis :) [See below for print caveat.] 

हालांकि, चूंकि print एक विशेष वाक्यविन्यास वक्तव्य है / पायथन 2.x में निर्माण होता है, फिर कोष्ठक के बिना, यह एक विशेष तरीके से व्यवहार करता है – और ट्यूपल नहीं बनाता है print स्टेटमेंट के इस विशेष उपचार से इसे अलग ढंग से कार्य करने में सक्षम हो जाता है अगर कोई अनुगामी हो या न हो।

हैप्पी कोडिंग


* यह पायथन 2 में print व्यवहार को पायथन 3 में बदला जा सकता है:

 from __future__ import print_function 

यूटीएफ -8 की बात करते समय हमारे पास दिलचस्प पक्ष प्रभाव है

 >> greek = dict( dog="σκύλος", cat="γάτα" ) >> print greek['dog'], greek['cat'] σκύλος γάτα >> print (greek['dog'], greek['cat']) ('\xcf\x83\xce\xba\xcf\x8d\xce\xbb\xce\xbf\xcf\x82', '\xce\xb3\xce\xac\xcf\x84\xce\xb1') 

अंतिम प्रिंट हेक्साडेसिमल बाइट मानों के साथ ट्यूपल है

मूल रूप से अजगर 3 से पहले पायथन में, प्रिंट एक विशेष बयान था, जो सभी स्ट्रिंग मुद्रित करता है यदि तर्क के रूप में मिला। तो print "foo","bar" का अर्थ केवल 'प्रिंट' फू 'के बाद' बार '"है। इसके साथ समस्या यह थी कि यह कार्य करने के लिए प्रलोभन था जैसे प्रिंट एक कार्य थे, और पायथन व्याकरण उस पर अस्पष्ट है, क्योंकि (a,b) एक ट्यूपल है जिसमें a और b लेकिन foo(a,b) कॉल है दो तर्कों का एक फ़ंक्शन

इसलिए उन्होंने 3 के लिए असंगत परिवर्तन किए, जिससे कार्यक्रमों को कम अस्पष्ट और अधिक नियमित बनाया जा सके।

(असल में, मुझे लगता है कि 2.7 व्यवहार इस पर 2.6 के रूप में किया गया था, लेकिन मैं निश्चित नहीं हूँ।)

यह सब बहुत सरल है और आगे या पिछड़े संगतता के साथ कुछ भी नहीं करना है।

संस्करण 3 से पहले सभी पायथन संस्करणों में print स्टेटमेंट के लिए सामान्य रूप है:

 print expr1, expr2, ... exprn 

(बदले में प्रत्येक अभिव्यक्ति का मूल्यांकन किया जाता है, एक स्ट्रिंग में कनवर्ट किया जाता है और उनके बीच एक स्थान के साथ प्रदर्शित होता है।)

लेकिन याद रखें कि अभिव्यक्ति के चारों ओर पैरों को लगाया जा रहा है अभी भी एक ही अभिव्यक्ति है।

तो आप इसे इस रूप में भी लिख सकते हैं:

 print (expr1), (expr2), ... (expr3) 

फ़ंक्शन को कॉल करने के साथ इसका कोई लेना देना नहीं है।