2009-05-05 18 views
232

के साथ प्रिंट पर सिंटेक्स त्रुटि पाइथन 3 में स्ट्रिंग को प्रिंट करते समय मुझे वाक्यविन्यास त्रुटि क्यों प्राप्त होती है?पाइथन 3

>>> print "hello World" 
    File "<stdin>", line 1 
    print "hello World" 
        ^
SyntaxError: invalid syntax 
+15

संकेत: पायथन में संगतता कोड के लिए 2.7+ इसे मॉड्यूल की शुरुआत में डाल दें: '__future__ आयात print_function' –

+0

से आयात करें ... आयात print_function काम नहीं कर रहा है, क्या आपको प्रिंट स्टेटमेंट में कुछ बदलने की ज़रूरत है ? या आयात करना चाहिए? – RMiranda

+5

रिकॉर्ड के लिए, इस मामले को पायथन 3.4.2 में एक कस्टम त्रुटि संदेश मिल जाएगा: https://stackoverflow.com/questions/25445439/what-does-syntaxerror-missing-parentheses-in-call-to-print- mean-in-python/ – ncoghlan

उत्तर

314

अजगर 3 में, printbecame a function। इसका मतलब यह है कि अब आप कोष्ठक शामिल करने की ज़रूरत नीचे उल्लेख की तरह:

print("Hello World") 
18

अजगर 3.0 में, print एक नियमित कार्य है जो की आवश्यकता है() है एक बयान के। इस प्रयास करें:

print("hello World") 
15

ऐसा लगता है कि अजगर 3. उपयोग कर रहे हैं अजगर 3 में, प्रिंट के बजाय एक पद्धति के लिए बदल दिया गया है:

print('Hello world!') 
16

अजगर 3 में, यह print("something"), नहीं print "something" है।

27

क्योंकि अजगर 3 में, print statement एक print() function के साथ पुराने प्रिंट बयान के विशेष सिंटेक्स के सबसे को बदलने के लिए बदल दिया गया है, कीवर्ड तर्क के साथ। तो आप के रूप में

print("Hello World") 

इसे लिखने के लिए है लेकिन अगर आप एक कार्यक्रम में इस बारे में और कुछ पायथन 2.x का उपयोग कर एक को चलाने के लिए कोशिश करता है, वे एक त्रुटि मिल जाएगा। इससे बचने के लिए, यह प्रिंट समारोह आयात करने के लिए एक अच्छा अभ्यास

from __future__ import print_function 

अब आप कोड दोनों 2.x & 3.x

उदाहरण नीचे चेक बाहर भी प्रिंट से परिचित कराने के पर काम करता है() फ़ंक्शन है ।

Old: print "The answer is", 2*2 
New: print("The answer is", 2*2) 

Old: print x,   # Trailing comma suppresses newline 
New: print(x, end=" ") # Appends a space instead of a newline 

Old: print    # Prints a newline 
New: print()   # You must call the function! 

Old: print >>sys.stderr, "fatal error" 
New: print("fatal error", file=sys.stderr) 

Old: print (x, y)  # prints repr((x, y)) 
New: print((x, y))  # Not the same as print(x, y)! 

स्रोत: What’s New In Python 3.0?

5

2.x पायथन print में एक keyword जबकि अजगर 3.X print में एक समारोह हो जाता है, तो यह करने के लिए सही तरीका print(something) है।

आप को क्रियान्वित करते हुए प्रत्येक संस्करण के लिए कीवर्ड की सूची प्राप्त कर सकते हैं निम्नलिखित:

>>> import keyword 
>>> keyword.kwlist 
7

आप प्रिंट print("Hello World")

5

2to3 साथ ब्रैकेट उपयोग करने के लिए एक अजगर प्रोग्राम है जो पढ़ता है पायथन 2.x स्रोत है कोड और यह वैध अजगर 3.x कोड में बदलने की फिक्सरों की एक श्रृंखला के लिए लागू होता

इसके अलावा जानकारियां यहां पाया जा सकता:

Python Documentation: Automated Python 2 to 3 code translation

8

अजगर 3 में, आप print('some code') करना चाहिए। ऐसा इसलिए है क्योंकि पायथन 3 में यह एक समारोह बन गया है।यदि आपको जरूरी है, तो आप अपने पायथन 2 कोड का उपयोग कर सकते हैं और 2to3 का उपयोग करके इसे पायथन 3 कोड में परिवर्तित कर सकते हैं - यह एक महान अंतर्निहित प्रोग्राम है जो पायथन के साथ आता है। अधिक के लिए, Python 2to3 - Convert your Python 2 to Python 3 automatically! देखें।