পাইথন লাইন কন্টিনিউয়েশন ক্যারেক্টার আপনাকে আপনার প্রোগ্রামে একটি লাইন অফ কোড একটি নতুন লাইনে কন্টিনিউ করতে দেয়। লাইন কন্টিনিউয়েশন ক্যারেক্টারকে যেকোনো ভ্যালু ফলো করতে পারena।
যদি আপনি একটি ক্যারেক্টার বা স্টেটমেন্ট একটি লাইন কন্টিনিউয়েশন ক্যারেক্টারের পর স্পেসিফাই করেন, আপনি "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"
আমরা আমাদের স্ট্রিংকে তিন লাইনে ভাগ করেছি। এতে আমাদের কোড পড়া সহজ হয়েছে।
দুটি সিনেরিও যখন এই এররটি উঠতে পারে:
- ডিভিশন অপারেটর হিসেবে ফরোয়ার্ড স্ল্যাশের বদলে ব্যাকস্ল্যাশ ব্যবহার করা
আমরা এই সিনেরিওগুলো একে একে আলোচনা করব।
সিনেরিও #১: ব্যাকস্ল্যাশ ব্যবহার করে ডিভিশন
এখানে, আমরা একটি প্রোগ্রাম লিখব যা একটি ব্যক্তির বডি মাস ইন্ডেক্স (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: " মেসেজের সাথে কনক্যাটেনেট করতে পারি। আমরা "bmi" এর মানকে দুই দশমিক স্থান পর্যন্ত রাউন্ড করি round() মেথড ব্যবহার করে।
চলুন আমাদের কোড রান করি:
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 ক্যালকুলেট করল।
সিনেরিও #২: নিউ লাইন ক্যারেক্টার ভুল ব্যবহার করা
পরবর্তীতে, আমরা একটি প্রোগ্রাম লিখব যা একটি ইনগ্রেডিয়েন্টের লিস্ট একটি ফাইলে লিখে। আমরা একটি শর্টব্রেড রেসিপির ইনগ্রেডিয়েন্টের লিস্ট ডিফাইন করে শুরু করি:
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" এররটি উঠে যখন আপনি একটি লাইন কন্টিনিউয়েশন ক্যারেক্টারের পর কোড অ্যাড করেন।
এই এররটি সমাধান করতে, নিশ্চিত করুন যে আপনি সঠিক ডিভিশন অপারেটর (একটি ফরোয়ার্ড স্ল্যাশ) ব্যবহার করছেন যদি আপনি ম্যাথমেটিক্যাল অপারেশন পারফর্ম করছেন। আপনি যদি যেকোনো স্পেশাল ক্যারেক্টার ব্যবহার করেন যেটিতে একটি ব্যাকস্ল্যাশ থাকে, নিউ লাইন ক্যারেক্টারর মতো, নিশ্চিত করুন যে সেগুলো কোটেশন মার্কের ভিতরে এনক্লোজ করা আছে।
এখন আপনি আপনার কোডে এই এররটি ফিক্স করার জন্য রেডি!