কম্পিউটার

Python IndexError:tuple index out of range solution

তালিকার মতো, পাইথন টিপলগুলিকে সূচিত করা হয়। এর মানে হল একটি টিপলের প্রতিটি মানের একটি সংখ্যা রয়েছে যা আপনি সেই মানটি অ্যাক্সেস করতে ব্যবহার করতে পারেন। আপনি যখন একটি টিপলে একটি আইটেম অ্যাক্সেস করার চেষ্টা করেন যা বিদ্যমান নেই, তখন পাইথন একটি ত্রুটি প্রদান করে যা বলে "টুপল ইনডেক্স অফ রেঞ্জ"।

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

সমস্যা বিশ্লেষণ:সূচক ত্রুটি:পরিসীমার বাইরে সূচী টিপল

টিপলগুলি 0 থেকে শুরু করে সূচীকৃত হয়। একটি টিপলের প্রতিটি পরবর্তী মান একটি সংখ্যা নির্ধারণ করা হয় যা শেষের থেকে একটি বড়। একটি টিপল দেখুন:

birds = ("Robin", "Collared Dove", "Great Tit", "Goldfinch", "Chaffinch")

এই টিপলে পাঁচটি মান রয়েছে। প্রতিটি মানের নিজস্ব সূচক নম্বর আছে:

রবিন কলার্ড ডোভ গ্রেট টিট গোল্ডফিঞ্চ শ্যাফিঞ্চ
1 2 3 4

আমাদের টিপলে "রবিন" মান অ্যাক্সেস করতে, আমরা এই কোডটি ব্যবহার করব:

print(birds[0])

আমাদের কোড ফিরে আসে:রবিন। আমরা সূচক পজিশন 1-এ মানটি অ্যাক্সেস করি এবং কনসোলে এটি প্রিন্ট করি। আমরা আমাদের তালিকার যেকোনো মান দিয়ে এটি করতে পারি।

যদি আমরা আমাদের টিপলের বাইরের একটি আইটেম অ্যাক্সেস করার চেষ্টা করি, একটি ত্রুটি উত্থাপিত হবে৷

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

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

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

আসুন একটি প্রোগ্রাম লিখি যা একটি টিপলে শেষ তিনটি মান প্রিন্ট করে। আমাদের টিপলে যুক্তরাজ্যের শহরগুলির একটি তালিকা রয়েছে। একটি টিপল ঘোষণা করে শুরু করা যাক:

cities = ("Edinburgh", "London", "Southend", "Bristol", "Cambridge")

পরবর্তী, আমরা শেষ তিনটি মান প্রিন্ট আউট. আমরা এটি একটি লুপ এবং একটি range() ব্যবহার করে করব বিবৃতি রেঞ্জ() স্টেটমেন্ট একটি নির্দিষ্ট রেঞ্জের মধ্যে সংখ্যাগুলির একটি তালিকা তৈরি করে যাতে আমরা আমাদের তালিকার আইটেমগুলির উপর পুনরাবৃত্তি করতে পারি যার সূচক নম্বরগুলি সেই পরিসরে রয়েছে।

এখানে আমাদের লুপের জন্য কোড:

for i in range(3, 6):
	print(birds[i])

আসুন আমাদের কোড চালানোর চেষ্টা করি:

Goldfinch
Chaffinch
Traceback (most recent call last):
  File "main.py", line 4, in <module>
	print(birds[i])
IndexError: tuple index out of range

আমাদের কোড গোল্ডফিঞ্চ এবং চ্যাফিঞ্চের মানগুলি প্রিন্ট করে। এই আমাদের তালিকার শেষ দুটি মান. এটি তৃতীয় মান প্রিন্ট করে না।

সমাধান

আমাদের range() বিবৃতিটি 3 এবং 6 এর পরিসরের মধ্যে সংখ্যার একটি তালিকা তৈরি করে। এই তালিকাটি 3 সহ এবং 6 ব্যতীত। আমাদের তালিকাটি শুধুমাত্র 4 পর্যন্ত সূচিত করা হয়েছে। এর মানে হল যে আমাদের লুপ সূচক অবস্থান 5-এ একটি পাখি অ্যাক্সেস করার চেষ্টা করবে। আমাদের টিপলে কারণ 5 আমাদের পরিসরে রয়েছে।

আসুন দেখি কি হয় যদি আমরা আলাদাভাবে পাখিদের[5] ছাপানোর চেষ্টা করি:

print(birds[5])

আমাদের কোড ফিরে আসে:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
	print(birds[5])
IndexError: tuple index out of range

একই ত্রুটি বর্তমান। এর কারণ হল আমরা আমাদের তালিকার আইটেমগুলিকে এমনভাবে অ্যাক্সেস করার চেষ্টা করি যেন সেগুলি 1 থেকে সূচিত করা হয়৷ Tuplesগুলি 0 থেকে সূচিত হয়৷

এই ত্রুটিটি সমাধান করার জন্য, আমাদের range() সংশোধন করতে হবে বিবৃতি তাই এটি শুধুমাত্র আমাদের টিপলে শেষ তিনটি আইটেম প্রিন্ট করে। আমাদের পরিসীমা 2 থেকে 5 পর্যন্ত হওয়া উচিত:

for i in range(2, 5):
	print(birds[i])

আসুন আমাদের সংশোধিত কোডটি চালান এবং দেখুন কি হয়:

Great Tit
Goldfinch
Chaffinch

আমাদের কোড সফলভাবে আমাদের তালিকার শেষ তিনটি আইটেম প্রিন্ট করে। আমরা এখন সূচক পজিশন 2, 3, এবং 4-এ আইটেমগুলি অ্যাক্সেস করছি৷ এই সমস্ত পজিশনগুলি বৈধ তাই আমাদের কোড এখন কাজ করে৷

উপসংহার

IndexError:টিপল ইনডেক্স রেঞ্জের বাইরে ত্রুটি দেখা দেয় যখন আপনি এমন একটি আইটেম অ্যাক্সেস করার চেষ্টা করেন যা বিদ্যমান নেই। এই সমস্যাটি সমাধান করার জন্য, নিশ্চিত করুন যে যখনই আপনি একটি টিপল থেকে একটি আইটেম অ্যাক্সেস করেন যে আইটেমটির জন্য আপনি খুঁজছেন সেটি বিদ্যমান রয়েছে।

এই ত্রুটির সবচেয়ে সাধারণ কারণ হল ভুলে যাওয়া যে টিপলগুলি 0 থেকে সূচিত করা হয়েছে৷ আপনি যখন একটি টিপল থেকে একটি মান অ্যাক্সেস করার চেষ্টা করছেন তখন 0 থেকে গণনা শুরু করুন৷ একজন শিক্ষানবিশ হিসাবে, এটি অদ্ভুত মনে হতে পারে। যেহেতু আপনি পাইথনে কোডিংয়ে বেশি সময় ব্যয় করেন, 0 থেকে গণনা দ্বিতীয়-প্রকৃতিতে পরিণত হবে।

এখন আপনি একজন বিশেষজ্ঞের মতো পাইথন ত্রুটির সমাধান করতে প্রস্তুত!


  1. পাইথনে একটি Tuple আনপ্যাক করা হচ্ছে

  2. আমি কিভাবে পাইথন টিপল থেকে আইটেমগুলি সরাতে পারি?

  3. কিভাবে পাইথনে একটি টিপল সূচী এবং স্লাইস করবেন?

  4. কেন সীমার বাইরে সাবস্ট্রিং স্লাইসিং সূচক পাইথনে কাজ করে?