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

पायथन सिंटेक्स त्रुटि:लाइन निरंतरता चरित्र समाधान के बाद अप्रत्याशित चरित्र

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

यदि आप एक पंक्ति निरंतरता वर्ण के बाद कोई वर्ण या कथन निर्दिष्ट करते हैं, तो आप "सिंटैक्स त्रुटि:पंक्ति निरंतरता वर्ण के बाद अप्रत्याशित वर्ण" त्रुटि का सामना करते हैं।

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

सिंटैक्स त्रुटि:पंक्ति निरंतरता वर्ण के बाद अनपेक्षित वर्ण

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

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

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

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

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

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

81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।

बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।

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

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

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

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

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

इसके बाद, हम उपयोगकर्ता के बीएमआई की गणना करते हैं। बीएमआई मान की गणना करने का सूत्र है:

BMI = kg/m2

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

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

हम "वजन" और "ऊंचाई" के मानों को फ्लोटिंग पॉइंट नंबरों में बदलते हैं ताकि हम उन पर गणितीय कार्य कर सकें।

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

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

  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

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

परिदृश्य #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)

यह कोड "सामग्री" चर में प्रत्येक घटक के माध्यम से लूप करता है। प्रत्येक घटक को सामग्री फ़ाइल में लिखा जाता है जिसके बाद पायथन में एक नया लाइन वर्ण ("\ 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" फ़ाइल में सफलतापूर्वक प्रिंट कर दिया है।

निष्कर्ष

जब आप एक पंक्ति निरंतरता वर्ण के बाद कोड जोड़ते हैं, तो "सिंटैक्स त्रुटि:अनपेक्षित वर्ण पंक्ति निरंतरता वर्ण के बाद" त्रुटि उत्पन्न होती है।

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

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


  1. पायथन टिंकर में विधि के बाद

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

  1. कैसे अजगर रेगेक्स में दोहराव के बाद एक चरित्र से मेल नहीं खाते?

    ^ # स्ट्रिंग की शुरुआत (?! # मेल नहीं खाता अगर |2{1,2}5) # या एक या दो 2s और उसके बाद 5 है .* # और कुछ भी स्वीकार किया जाता है उदाहरण निम्न कोड दिए गए प्रश्न की शर्तों को पूरा करता है import re foo = '2249678' foo2 = '2259678' result = re.findall(r'^(?!2

  1. पायथन में अप्रत्याशित इंडेंट क्या है?

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