जवाबों:
इस त्रुटि संदेश का अर्थ है कि आप पायथन 3 का उपयोग एक उदाहरण का अनुसरण करने या एक प्रोग्राम चलाने के लिए कर रहे हैं, जो पायथन 2 का उपयोग करता है print:
print "Hello, World!"
उपरोक्त कथन पायथन 3 में काम नहीं करता है। पायथन 3 में आपको मुद्रित होने के लिए मूल्य के चारों ओर कोष्ठक जोड़ना होगा:
print("Hello, World!")
"SyntaxError: 'प्रिंट' के लिए कॉल में कोष्ठक गुम होना" एक नया त्रुटि संदेश है जो मुख्य रूप से पायथन 3 को चलाते समय पायथन 2 ट्यूटोरियल का पालन करने की कोशिश कर रहे उपयोगकर्ताओं की मदद करने के लिए मुख्य रूप से पायथन 3.4.2 में जोड़ा गया था।
पायथन 3 में, प्रिंटिंग वैल्यू एक अलग स्टेटमेंट से एक साधारण फंक्शन कॉल होने के रूप में बदल गई, इसलिए अब इसे कोष्ठक की आवश्यकता है:
>>> print("Hello, World!")
Hello, World!
पायथन 3 के पुराने संस्करणों में, दुभाषिया केवल एक सामान्य वाक्यविन्यास त्रुटि की रिपोर्ट करता है, बिना किसी उपयोगी संकेत के जो कि गलत हो सकता है।
>>> print "Hello, World!"
File "<stdin>", line 1
print "Hello, World!"
^
SyntaxError: invalid syntax
से संबंधित कि print पायथन 3 में एक साधारण कार्य क्यों बन गया, यह कथन के मूल रूप से संबंधित नहीं था, बल्कि यह भी था कि आपने रेखा को समाप्त करने के बजाय ट्रेलिंग स्थान के साथ कई वस्तुओं को प्रिंट करने के लिए अधिक जटिल चीजें कैसे कीं।
पायथन 2 में:
>>> import sys
>>> print >> sys.stderr, 1, 2, 3,; print >> sys.stderr, 4, 5, 6
1 2 3 4 5 6
पायथन 3 में:
>>> import sys
>>> print(1, 2, 3, file=sys.stderr, end=" "); print(4, 5, 6, file=sys.stderr)
1 2 3 4 5 6
सितंबर 2017 में पायथन 3.6.3 रिलीज़ के साथ शुरू, पायथन 2.x प्रिंट सिंटैक्स से संबंधित कुछ त्रुटि संदेश उनके पायथन 3.x समकक्षों की सिफारिश करने के लिए अपडेट किए गए हैं:
>>> print "Hello!"
File "<stdin>", line 1
print "Hello!"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello!")?
चूंकि "मिसिंग कोष्ठक में कॉल टू प्रिंट" केस एक संकलित समय वाक्यविन्यास त्रुटि है और इसलिए कच्चे स्रोत कोड तक पहुंच है, यह सुझाए गए प्रतिस्थापन में शेष पाठ पर पूर्ण पाठ को शामिल करने में सक्षम है। हालांकि, यह वर्तमान में उस अभिव्यक्ति के आसपास रखने के लिए उपयुक्त उद्धरणों को काम करने की कोशिश नहीं करता है (यह असंभव नहीं है, बस पर्याप्त रूप से जटिल है कि यह नहीं किया गया है)।
TypeErrorसही पारी ऑपरेटर के लिए उठाया भी अनुकूलित कर दिया गया है
>>> print >> sys.stderr
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and '_io.TextIOWrapper'. Did you mean "print(<message>, file=<output_stream>)"?
चूंकि यह त्रुटि तब उठाया जाता है, जब कोड संकलित होने के बजाय, यह कच्चे स्रोत कोड तक पहुंच नहीं रखता है, और इसलिए उपयोगकर्ता जो भी वास्तव में टाइप करता है, उसके बजाय सुझाए गए प्रतिस्थापन अभिव्यक्ति में मेटा-चर ( <message>और <output_stream>) का उपयोग करता है। । सिंटैक्स त्रुटि मामले के विपरीत, यह कस्टम राइट शिफ्ट एरर मैसेज में पायथन एक्सप्रेशन के आसपास उद्धरणों को रखने के लिए सीधा है।
दुर्भाग्य से, पुरानी xkcd कॉमिक अब तक पूरी तरह से अद्यतित नहीं है।
पायथन 3.0 के बाद से आपको लिखना होगा:
print("Hello, World!")
और किसी को अभी भी उस antigravityपुस्तकालय को लिखना है :(
यदि आपका कोड पायथन 2 और 3 दोनों में काम करना चाहिए, तो आप इसे अपने कार्यक्रम की शुरुआत में लोड करके प्राप्त कर सकते हैं:
from __future__ import print_function # If code has to work in Python 2 and 3!
फिर आप पायथन 3 तरीके से प्रिंट कर सकते हैं:
print("python")
यदि आप नई लाइन बनाए बिना कुछ प्रिंट करना चाहते हैं - तो आप यह कर सकते हैं:
for number in range(0, 10):
print(number, end=', ')
मूल रूप से, पायथन 3.x के बाद से आपको उपयोग करने की आवश्यकता है print कोष्ठक के साथ है।
अजगर 2.x : "लॉर्ड ऑफ द रिंग्स" प्रिंट करें
अजगर 3.x : प्रिंट ("लॉर्ड ऑफ द रिंग्स")
print2.x में एक बयान था , लेकिन यह 3.x में एक फ़ंक्शन है । अब, इसके कई अच्छे कारण हैं।
>>> items = ['foo', 'bar', 'baz'] >>> print(*items, sep='+') foo+bar+baz
मैं भी सिर्फ जोड़ सकता है कि मैं के बीच वाक्य रचना परिवर्तन के बारे में सब कुछ जानता था Python2.7और Python3, और मेरे कोड सही तरीके के रूप में लिखा गया था print("string")और यहां तक कि
print(f"string") ...
लेकिन डिबगिंग के कुछ समय बाद मुझे महसूस हुआ कि मेरी बैश स्क्रिप्ट अजगर को बुला रही है:
python file_name.py
जिसमें डिफ़ॉल्ट रूप से मेरी पाइथन स्क्रिप्ट को कॉल करने का प्रभाव था python2.7जिसने त्रुटि दी। इसलिए मैंने अपनी बैश स्क्रिप्ट को इसमें बदल दिया:
python3 file_name.py
स्क्रिप्ट को चलाने के लिए python3 में से कौन सा मोटे का उपयोग करता है जिसने त्रुटि को ठीक किया।
यहां सीधे उत्तरों के बाहर, एक को अजगर 2 और 3 के बीच अन्य महत्वपूर्ण अंतर पर ध्यान देना चाहिए। आधिकारिक अजगर विकी लगभग सभी प्रमुख अंतरों में जाता है और इस पर ध्यान केंद्रित करता है कि आपको दोनों संस्करणों में से किसका उपयोग करना चाहिए। यह ब्लॉग पोस्ट वर्तमान अजगर ब्रह्मांड की व्याख्या करने का एक अच्छा काम करता है और किसी तरह से अजगर 3 में जाने की अनसुलझी पहेली है।
जहाँ तक मैं बता सकता हूँ, आप अजगर भाषा सीखना शुरू कर रहे हैं। पायथन 3 मार्ग को जारी रखने से पहले आपको उपरोक्त लेखों पर विचार करना चाहिए। न केवल आपको अपने कुछ सिंटैक्स को बदलना होगा, आपको यह भी सोचना होगा कि कौन से पैकेज आपके लिए उपलब्ध होंगे (अजगर 2 का लाभ) और संभावित अनुकूलन जो आपके कोड में हो सकते हैं (पायथन 3 का लाभ) ।