Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन SyntaxError: unexpected character after line continuation character समाधान

पायथन लाइन कंटिन्यूएशन कैरेक्टर आपको कोड की एक लाइन को अपने प्रोग्राम में एक नई लाइन पर जारी रखने देता है। लाइन कंटिन्यूएशन कैरेक्टर के बाद कोई मान नहीं हो सकता।

यदि आप लाइन कंटिन्यूएशन कैरेक्टर के बाद कोई वर्ण या स्टेटमेंट निर्दिष्ट करते हैं, तो आप "SyntaxError: unexpected character after line continuation character" त्रुटि का सामना करते हैं।

इस गाइड में, हम बात करते हैं कि इस त्रुटि का क्या अर्थ है और यह क्यों उठाई जाती है। हम इस त्रुटि के दो उदाहरण देखते हैं ताकि आप सीख सकें कि इसे अपने कोड में कैसे उपयोग किया जाए।

SyntaxError: unexpected character after line continuation character

लाइन कंटिन्यूएशन कैरेक्टर आपको एक लंबे स्ट्रिंग को कोड की कई पंक्तियों पर लिखने देता है। यह वर्ण उपयोगी है क्योंकि यह कोड को पढ़ने में आसान बनाता है। लाइन कंटिन्यूएशन कैरेक्टर एक बैकस्लैश ("\") है।

जहां एक बहुत लंबी कोड लाइन का पालन करना कठिन हो सकता है, वहीं एक कोड लाइन जो कई पंक्तियों में विभाजित है, उसका पालन करना आसान है।

लाइन कंटिन्यूएशन कैरेक्टर का उपयोग आमतौर पर कोड को तोड़ने या एक लंबे स्ट्रिंग को कोड की कई पंक्तियों पर लिखने के लिए किया जाता है:

url = "https://careerkarma.com" \
 "/blog/python-syntaxerror-unexpected-character-after" \
 "line-continuation-character"

हमने अपने स्ट्रिंग को तीन लाइनों में तोड़ दिया है। यह हमारे कोड को पढ़ना आसान बनाता है।

दो परिदृश्य जब यह त्रुटि उठाई जा सकती है उनमें शामिल हैं:

  • डिवीजन ऑपरेटर के रूप में फॉरवर्ड स्लैश के बजाय बैकस्लैश का उपयोग करना
  • नई लाइन वर्ण को पैरेंथेसिस में संलग्न किए बिना स्ट्रिंग में नई लाइन जोड़ना

हम इनमें से प्रत्येक परिदृश्य के बारे में एक-एक करके बात करेंगे।

परिदृश्य #1: बैकस्लैश का उपयोग करके डिवीजन

यहां, हम एक प्रोग्राम लिखते हैं जो किसी व्यक्ति के बॉडी मास इंडेक्स (BMI) की गणना करता है। शुरू करने के लिए, हमें उपयोगकर्ता से अपनी ऊंचाई और वजन को पायथन प्रोग्राम में डालने के लिए कहना होगा:

height = input("What is your height? ")
weight = input("What is your weight? ")

अगला, हम उपयोगकर्ता का BMI गणना करते हैं। BMI मान की गणना करने का सूत्र है:

BMI = kg/m2

"Kg" किलोग्राम में किसी व्यक्ति का वजन है। "m2" किसी व्यक्ति की ऊंचाई का वर्ग है। पायथन में अनुवादित, BMI की गणना करने का सूत्र इस तरह दिखता है:

bmi = float(weight) \ (float(height) * 2)
print("Your BMI is: " + str(bmi))

हम "weight" और "height" के मानों को फ्लोटिंग पॉइंट नंबर में बदलते हैं ताकि हम उन पर गणितीय फ़ंक्शन कर सकें।

फिर हम उपयोगकर्ता के BMI को कंसोल पर प्रिंट करते हैं। हम "bmi" को str() मेथड का उपयोग करके स्ट्रिंग में बदलते हैं ताकि हम इसे "Your BMI is: " संदेश से जोड़ सकें। हम round() मेथड का उपयोग करके "bmi" के मान को दो दशमलव स्थानों तक राउंड करते हैं।

आइए अपना कोड चलाते हैं:

 File "main.py", line 4
    bmi = float(weight) \ (float(height) * 2)
    ^
SyntaxError: unexpected character after line continuation character

हमने एक त्रुटि का सामना किया है। ऐसा इसलिए है क्योंकि हमने डिवीजन ऑपरेटर के रूप में "\" का उपयोग किया है बजाय "/" चिह्न के। हम अपने कोड को "/" डिवीजन ऑपरेटर का उपयोग करके ठीक कर सकते हैं:

bmi = float(weight) / (float(height) * 2)
print("Your BMI is: " + str(round(bmi, 2)))

हमारा कोड लौटाता है:

What is your height? 1.70
What is your weight? 63
Your BMI is: 18.53

हमारे कोड ने उपयोगकर्ता के BMI की सफलतापूर्वक गणना की है।

परिदृश्य #2: नई लाइन वर्ण का गलत उपयोग

अगला, हम एक प्रोग्राम लिखते हैं जो सामग्री की एक सूची को फ़ाइल में लिखता है। हम शॉर्टब्रेड रेसिपी के लिए सामग्री की सूची को परिभाषित करके शुरू करते हैं:

ingredients = [
    "150g plain flour",
    "100g butter, chilled an cubed",
    "50g caster sugar"
]

अगला, हम "shortbread_recipe.txt" नामक एक फ़ाइल खोलते हैं जिसमें हम अपनी सामग्री की सूची लिखेंगे:

with open("shortbread_recipe.txt", "w+") as ingredients_file:
    for i in ingredients:
        ingredients_file.write(i + \n)

यह कोड "ingredients" वेरिएबल में प्रत्येक सामग्री के माध्यम से लूप करता है। प्रत्येक सामग्री को सामग्री फ़ाइल में लिखा जाता है जिसके बाद पायथन में एक नई लाइन वर्ण ("\n") होता है। यह सुनिश्चित करता है कि प्रत्येक सामग्री एक नई लाइन पर दिखाई दे।

आइए अपना पायथन कोड चलाते हैं:

 File "main.py", line 9
    ingredients_file.write(i + \n)
    ^
SyntaxError: unexpected character after line continuation character

हमारा कोड एक त्रुटि लौटाता है। ऐसा इसलिए है क्योंकि हमने अपने नई लाइन वर्ण को कोटेशन मार्क्स में संलग्न नहीं किया है।

जबकि नई लाइन वर्ण एक विशेष वर्ण है, जब भी इसका उपयोग किया जाता है तो इसे कोटेशन मार्क्स के भीतर संलग्न किया जाना चाहिए। ऐसा इसलिए है क्योंकि पायथन "\" को लाइन कंटिन्यूएशन कैरेक्टर मानता है।

अपने कोड में त्रुटि को हल करने के लिए, हमें नई लाइन वर्ण को डबल कोट्स में संलग्न करने की आवश्यकता है:

with open("shortbread_recipe.txt", "w+") as ingredients_file:
    for i in ingredients:
        ingredients_file.write(i + "\n")

आइए अपना कोड चलाते हैं। हमारा कोड कंसोल पर कोई मान नहीं लौटाता। "shortbread_recipe.txt" नामक एक नई फ़ाइल बनाई जाती है। इसकी सामग्री इस प्रकार है:

150g plain flour
100g butter, chilled an cubed
50g caster sugar

हमारे कोड ने सफलतापूर्वक हमारी सूची को "shortbread_recipe.txt" फ़ाइल में प्रिंट किया है।

निष्कर्ष

"SyntaxError: unexpected character after line continuation character" त्रुटि तब उठाई जाती है जब आप लाइन कंटिन्यूएशन कैरेक्टर के बाद कोड जोड़ते हैं।

इस त्रुटि को हल करने के लिए, सुनिश्चित करें कि यदि आप गणितीय संक्रियाएं कर रहे हैं तो आप सही डिवीजन ऑपरेटर (फॉरवर्ड स्लैश) का उपयोग करते हैं। यदि आप किसी विशेष वर्ण का उपयोग कर रहे हैं जिसमें बैकस्लैश होता है, जैसे नई लाइन वर्ण, तो सुनिश्चित करें कि वे कोटेशन मार्क्स के भीतर संलग्न हैं।

अब आप अपने कोड में इस त्रुटि को ठीक करने के लिए तैयार हैं!

  1. Python Tkinter में after विधि Python Tkinter में after विधि

    Tkinter GUI बनाने के लिए एक Python लाइब्रेरी है। इसमें GUI विंडोज और अन्य विजेट्स बनाने और हेरफेर करने के लिए कई अंतर्निहित विधियाँ हैं जो डेटा और GUI इवेंट्स दिखाते हैं। इस लेख में हम देखेंगे कि Tkinter GUI में after विधि का उपयोग कैसे किया जाता है। सिंटैक्स .after(delay, FuncName=FuncName) यह विध

  1. - पायथन रेगेक्स में रिपिटिशन के बाद किसी कैरेक्टर को मैच न करने का तरीका?

    निम्नलिखित पैटर्न दर्शाता है कि रिपिटिशन के बाद किसी विशेष पैटर्न को कैसे नहीं मैच करना है: ^स्ट्रिंग की शुरुआत (?!)यदि मैच न हो तो (नेगेटिव लुकअहेड) |2{1,2}5)या एक या दो 2 के बाद एक 5 .*बाकी कुछ भी स्वीकार है उदाहरण निम्नलिखित कोड दिए गए प्रश्न में शर्तों को पूरा करता है: import re foo = 2249

  1. - पायथन में unexpected indent क्या है?

    पायथन न केवल इंडेंटेशन पर जोर देता है, यह सुसंगत इंडेंटेशन पर जोर देता है। यदि हम एक लाइन को 4 स्पेस से इंडेंट करते हैं, लेकिन फिर अगली को 3 (या 5, 6, .) से इंडेंट करते हैं, तो हमें पायथन में unexpected indent की एरर मिलती है। दिए गए कोड में, लाइन 3 में लाइन 2 की तुलना में शुरुआत में अधिक स्पेस हैं।