কম্পিউটার

Python TypeError:ফরম্যাট স্ট্রিং সমাধানের জন্য যথেষ্ট আর্গুমেন্ট নেই

পাইথন স্ট্রিং অবশ্যই সঠিক সংখ্যক আর্গুমেন্ট ব্যবহার করে ফরম্যাট করতে হবে। যখন আপনার নির্দিষ্ট করা আর্গুমেন্টের সংখ্যা আপনি একটি স্ট্রিং-এ ফরম্যাট করতে চান এমন মানের থেকে কম হয়, আপনি "TypeError:ফরম্যাট স্ট্রিং এর জন্য যথেষ্ট আর্গুমেন্ট নয়" এর মত একটি ত্রুটির সম্মুখীন হন।

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

TypeError:ফরম্যাট স্ট্রিং এর জন্য যথেষ্ট আর্গুমেন্ট নেই

আমাদের ত্রুটি একটি TypeError. এর মানে আমরা এমন একটি মানতে কিছু করার চেষ্টা করেছি যার অন্তর্নিহিত ডেটা টাইপ সেই অপারেশনটিকে সমর্থন করে না।

এই ক্ষেত্রে, আমরা স্ট্রিং ফরম্যাটিং নিয়ে কাজ করি। পাইথন আমাদের বলে যে আমরা একটি স্ট্রিং ফর্ম্যাট করতে ভুল করেছি।

যখন আপনি একটি স্ট্রিং ফরম্যাট করেন, তখন আপনি যে আর্গুমেন্টগুলি নির্দিষ্ট করেন তার সংখ্যা আপনি ফর্ম্যাট করতে চান এমন মানগুলির সংখ্যার সমান হতে হবে৷ অন্যথায়, আপনি একটি ত্রুটির সম্মুখীন হবেন৷

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

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

এখানে, আমরা একটি অ্যাপ তৈরি করি যা অনার রোলে থাকা ছাত্রদের নামের তালিকাকে একটি স্ট্রিংয়ে ফর্ম্যাট করে। আমরা ছাত্রদের নামের একটি তালিকা সংজ্ঞায়িত করে শুরু করি:

students = ["Andy", "Malcolm", "Lindsay", "Lucy"]

এর পরে, আমরা % সিনট্যাক্স ব্যবহার করে এই মানগুলিকে একটি স্ট্রিংয়ে ফর্ম্যাট করি:

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

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

honor_roll = "%s, %s, %s, and %s are on the CK High School Honor Roll." % students[0], students[1], students[2], students[3]
print(honor_roll)

আমরা আমাদের "স্টুডেন্টস" অ্যারে থেকে "honor_roll" স্ট্রিং-এ চারটি নাম ফরম্যাট করি। মানগুলি কোথায় ফর্ম্যাট করা উচিত তা নির্দেশ করতে আমরা আমাদের স্ট্রিংয়ের ভিতরে %s ব্যবহার করি। আমরা আমাদের স্ট্রিং এ কোন মান যোগ করতে চাই তা নির্দিষ্ট করতে স্ট্রিংয়ের পরে % ব্যবহার করা হয়।

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

Traceback (most recent call last):
  File "main.py", line 3, in <module>
	honor_roll = "%s, %s, %s, and %s are on the CK High School Honor Roll." % students[0], students[1], students[2], students[3]
TypeError: not enough arguments for format string

পাইথন একটি ত্রুটির সম্মুখীন হয়েছে৷ দেখা যাক কিভাবে আমরা এর সমাধান করতে পারি।

সমাধান #1:স্ট্রিং ফরম্যাটিং সিনট্যাক্স ঠিক করুন

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

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

আমরা % সাইন ইন বন্ধনী অনুসরণ করে মানগুলি আবদ্ধ করে আমাদের ত্রুটি ঠিক করি:

honor_roll = "%s, %s, %s, and %s are on the CK High School Honor Roll." % (students[0], students[1], students[2], students[3])

আমাদের কোড রান করা যাক:

Andy, Malcolm, Lindsay, and Lucy are on the CK High School Honor Roll.

আমাদের কোড সফলভাবে একটি বার্তা ফেরত দেয় যা আমাদেরকে অনার রোলে থাকা শিক্ষার্থীদের সম্পর্কে অবহিত করে।

সমাধান #2:.format()

ব্যবহার করুন

% সিনট্যাক্স পুরানো হতে শুরু করেছে। স্ট্রিং ফরম্যাট করার অন্যান্য পদ্ধতি আছে যেমন .format() পদ্ধতি যা আধুনিক পাইথন কোডে বেশি পছন্দের।

আমাদের সমস্যা সমাধানের জন্য, আমরা .format() ব্যবহার করতে পারি % সিনট্যাক্সের পরিবর্তে সিনট্যাক্স:

honor_roll = "{}, {}, {}, and {} are on the CK High School Honor Roll.".format(students[0], students[1], students[2], students[3])

এই সিনট্যাক্সের গঠন % পদ্ধতির অনুরূপ। আমাদের স্ট্রিং-এ, আমরা কোথায় মান যোগ করতে চাই তা বোঝাতে আমরা {} বন্ধনী ব্যবহার করি।

আমরা .format() ব্যবহার করি আমরা আমাদের স্ট্রিং এ যোগ করতে চাই এমন মানগুলির তালিকা নির্দিষ্ট করার পদ্ধতি। আসুন আমাদের কোড রান করি:

Andy, Malcolm, Lindsay, and Lucy are on the CK High School Honor Roll.

আমাদের প্রোগ্রামটি সফলভাবে আমাদেরকে সম্মানের তালিকায় থাকা শিক্ষার্থীদের নামের একটি তালিকা দেখায়। এই তালিকাটি একটি স্ট্রিং এর অংশ হিসাবে ফর্ম্যাট করা হয়েছে৷

উপসংহার

"TypeError:নট পর্যাপ্ত আর্গুমেন্ট ফরম্যাট স্ট্রিং" ত্রুটি উত্থাপিত হয় যখন একটি স্ট্রিং ফরম্যাট অপারেশনে নির্দিষ্ট আর্গুমেন্টের সংখ্যা আপনি একটি স্ট্রিং-এ যোগ করতে চান এমন মানগুলির সংখ্যার সমান না হয়৷

এই সমস্যাটি সমাধান করার জন্য, প্রথমে নিশ্চিত করুন যে আপনি যদি % অপারেটর ব্যবহার করেন তবে আপনি কোঁকড়া বন্ধনী () এ সমস্ত আর্গুমেন্ট সংযুক্ত করেছেন। আপনি .format() ব্যবহার করতে পারেন আপনি যদি এই ত্রুটিটি ঠিক করতে এবং আপনার কোডকে আধুনিকীকরণ করতে চান তবে % সিনট্যাক্সের প্রতিস্থাপন হিসাবে পদ্ধতি।

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


  1. একটি স্ট্রিং প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  2. পাইথনে স্ট্রিং অপারেশন

  3. পাইথন প্রোগ্রাম একটি স্ট্রিং মধ্যে ইউআরএল চেক করতে

  4. পাইথন 3 এ একটি অভিধান ব্যবহার করে আমি কীভাবে একটি স্ট্রিং ফর্ম্যাট করব?