কম্পিউটার

Python TabError:ইনডেন্টেশন সলিউশনে ট্যাব এবং স্পেসগুলির অসামঞ্জস্যপূর্ণ ব্যবহার

আপনি পাইথন প্রোগ্রামে স্পেস বা ট্যাব ব্যবহার করে কোড ইন্ডেন্ট করতে পারেন। আপনি যদি কোডের একই ব্লকে উভয়ের সংমিশ্রণ ব্যবহার করার চেষ্টা করেন, তাহলে আপনি "TabError:ট্যাবগুলির অসঙ্গত ব্যবহার এবং ইন্ডেন্টেশনে স্পেস" ত্রুটির সম্মুখীন হবেন।

এই নির্দেশিকায়, আমরা এই ত্রুটির অর্থ কী এবং কেন এটি উত্থাপিত হয়েছে তা নিয়ে আলোচনা করি। আমরা এই ত্রুটির একটি উদাহরণ দিয়ে হেঁটে যাব যাতে আপনি আপনার কোডে কীভাবে এটি সমাধান করবেন তা বের করতে পারেন৷

TabError:ইনডেন্টেশনে ট্যাব এবং স্পেসগুলির অসামঞ্জস্যপূর্ণ ব্যবহার

যদিও পাইথন স্টাইল গাইড বলছে পাইথনে কোডিং করার সময় স্পেসগুলি ইন্ডেন্টেশনের পছন্দের পদ্ধতি, আপনি স্পেস বা ট্যাব ব্যবহার করতে পারেন।

পাইথনে ইন্ডেন্টেশন গুরুত্বপূর্ণ কারণ ভাষাটি কোঁকড়া বন্ধনীর মতো সিনট্যাক্সের উপর নির্ভর করে না যেখানে কোডের একটি ব্লক শুরু হয় এবং শেষ হয় তা বোঝাতে। ইন্ডেন্টগুলি পাইথনকে বলে যে কোডের লাইনগুলি কোন কোড ব্লকের অংশ।

নিম্নলিখিত প্রোগ্রাম বিবেচনা করুন:

numbers = [8, 7, 9, 8, 7]

def calculate_average_age():
average = sum(numbers) / len(numbers)
print(average)

ইন্ডেন্টেশন ছাড়া, কোডের কোন লাইনগুলি calculate_average_age ফাংশনের অংশ হওয়া উচিত এবং কোডের কোন লাইনগুলি প্রধান প্রোগ্রামের অংশ তা জানা অসম্ভব।

আপনাকে অবশ্যই স্পেস বা ট্যাব ব্যবহার করে লেগে থাকতে হবে। ট্যাব এবং স্পেস মিশ্রিত করবেন না। এটি করলে পাইথন ইন্টারপ্রেটার বিভ্রান্ত হবে এবং "TabError:ইনডেন্টেশনে ট্যাব এবং স্পেসগুলির অসামঞ্জস্যপূর্ণ ব্যবহার" ত্রুটির কারণ হবে৷

একটি উদাহরণ দৃশ্য

আমরা একটি প্রোগ্রাম তৈরি করতে চাই যা একটি ডোনাট স্টোরে করা কেনাকাটার মোট মূল্য গণনা করে। শুরু করতে, কেনাকাটার একটি তালিকা সংজ্ঞায়িত করা যাক:

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

purchases = [2.50, 4.90, 5.60, 2.40]

এর পরে, আমরা একটি ফাংশন সংজ্ঞায়িত করতে যাচ্ছি যা "ক্রয়" তালিকার মোট গণনা করে:

def calculate_total_purchases(purchases):
	total = sum(purchases)
    return total

আমাদের ফাংশন একটি প্যারামিটার গ্রহণ করে:ক্রয়ের তালিকা যা আমরা মোট মূল্য গণনা করতে চাই। ফাংশনটি তালিকার মোট মান প্রদান করে যা আমরা একটি প্যারামিটার হিসাবে নির্দিষ্ট করি।

আমরা "ক্রয়" তালিকার মোট সংখ্যা গণনা করতে sum() পদ্ধতি ব্যবহার করি।

আপনি যদি এই কোড স্নিপেটটি আপনার টেক্সট এডিটরে কপি করেন, তাহলে আপনি লক্ষ্য করতে পারেন যে কোডের "মোট রিটার্ন" লাইনটি স্পেস ব্যবহার করে ইন্ডেন্ট করা হয়েছে যেখানে কোডের "টোটাল =যোগ(ক্রয়)" লাইনটি ইন্ডেন্টেশনের জন্য ট্যাব ব্যবহার করে। এটি একটি গুরুত্বপূর্ণ পার্থক্য।

এরপরে, আমাদের ফাংশনকে কল করুন এবং কনসোলে যে মানটি ফেরত আসে তা মুদ্রণ করুন:

total_purchases = calculate_total_purchases(purchases)
print(total_purchases)

আমাদের কোডকে calculate_total_purchases() বলে ডোনাট স্টোরে করা সমস্ত কেনাকাটার মোট মূল্য গণনা করার ফাংশন। তারপরে আমরা সেই মানটি কনসোলে প্রিন্ট করি। আসুন আমাদের কোড চালাই এবং দেখুন কি হয়:

  File "test1.py", line 5
	return total
           	^
TabError: inconsistent use of tabs and spaces in indentation

আমাদের কোড একটি ত্রুটি প্রদান করে৷

সমাধান

আমরা আমাদের কোড ইন্ডেন্ট করতে স্পেস এবং ট্যাব ব্যবহার করেছি। একটি পাইথন প্রোগ্রামে, আপনার ইন্ডেন্টেশনের এই দুটি পদ্ধতির যেকোনো একটি ব্যবহার করা উচিত।

আমাদের কোড ঠিক করতে, আমরা আমাদের ফাংশন পরিবর্তন করতে যাচ্ছি যাতে আমরা শুধুমাত্র স্পেস ব্যবহার করি:

def calculate_total_purchases(purchases):
	total = sum(purchases)
    return total

আমাদের কোড ইন্ডেন্টেশনের জন্য 4টি স্পেস ব্যবহার করে। আমাদের নতুন ইন্ডেন্টেশন দিয়ে আমাদের প্রোগ্রাম চালানো যাক:

15.4

আমাদের প্রোগ্রাম সফলভাবে ডোনাট ক্রয়ের মোট মূল্য গণনা করে।

IDLE সম্পাদকে, আপনি এই নির্দেশাবলী অনুসরণ করে কোডের একটি ব্লকের জন্য ইন্ডেন্টেশন সরাতে পারেন:

  • কোডটি নির্বাচন করুন যার ইন্ডেন্টেশন আপনি সরাতে চান
  • "মেনু" -> "ফরম্যাট" -> "আনটাবিফাই অঞ্চল" এ ক্লিক করুন
  • আপনি যে ধরনের ইন্ডেন্টেশন ব্যবহার করতে চান তা সন্নিবেশ করুন

এটি একটি নথিতে বিন্যাস ঠিক করার একটি সুবিধাজনক উপায়, ধরে নিচ্ছেন আপনি IDLE সম্পাদক ব্যবহার করছেন৷ সাবলাইম টেক্সটের মতো অন্যান্য অনেক সম্পাদকের ফাইলে ইন্ডেন্টেশন পরিবর্তন করার নিজস্ব পদ্ধতি রয়েছে।

উপসংহার

পাইথন "TabError:ইনডেন্টেশনে ট্যাব এবং স্পেসগুলির অসামঞ্জস্যপূর্ণ ব্যবহার" ত্রুটি উত্থাপিত হয় যখন আপনি স্পেস এবং ট্যাব উভয় ব্যবহার করে কোড ইন্ডেন্ট করার চেষ্টা করেন।

আপনি একটি প্রোগ্রামে স্পেস বা ট্যাবে আটকে রেখে এবং আপনার পছন্দের ইন্ডেন্টেশন পদ্ধতি ব্যবহার করে না এমন কোনো ট্যাব বা স্পেস প্রতিস্থাপন করে এই ত্রুটিটি ঠিক করুন। এখন আপনি একজন পেশাদার প্রোগ্রামারের মতো এই ত্রুটিটি ঠিক করতে আপনার প্রয়োজনীয় জ্ঞান আছে!


  1. পাইথন কোড প্যাকেজিং এবং প্রকাশনা?

  2. ফিক্স:ইন্ডেন্টেশন ত্রুটি পাইথন

  3. পাইথন ভেরিয়েবল - পাইথনে ভেরিয়েবলগুলি কীভাবে ঘোষণা এবং ব্যবহার করবেন

  4. Python Loops - Python এ লুপ করার সময় এবং কিভাবে ব্যবহার করবেন তা শিখুন