কম্পিউটার টিউটোরিয়াল

পাইথন: শূন্য প্যাডিং (Zero Padding)

কিছু সংখ্যার শুরুতে শূন্য বা একাধিক শূন্য থাকতে পারে। উদাহরণস্বরূপ, একটি ব্যবহারকারী আইডি (user ID) একটি নির্দিষ্ট সংখ্যার নিচে থাকলে শুরুর দিকে নির্দিষ্ট সংখ্যক শূন্য রাখতে হতে পারে যাতে সমস্ত আইডি নম্বর একই দৈর্ঘ্যের হয়।

আপনি zfill() ফাংশন ব্যবহার করে একটি স্ট্রিং-এ শূন্য প্যাড করতে পারেন। আপনি স্ট্রিং ফরম্যাটিং ব্যবহার করে একটি সংখ্যাতে শূন্য প্যাড করতে পারেন। এই গাইডটি একটি স্ট্রিং এবং একটি ইন্টিজার-এ শূন্য প্যাড করার উদাহরণ দেখায়।

পাইথন: স্ট্রিং-এ শূন্য প্যাড করা

একটি প্রোগ্রাম লিখুন যা যাচাই করে একটি রাফল টিকেট নম্বর বিজয়ী কিনা। প্রতিটি রাফল টিকেট নম্বর তিন অঙ্কের মতো থাকে:

022

আমাদের প্রোগ্রাম ব্যবহারকারীকে একটি নম্বর ইনপুট দিতে বলবে। যদি ব্যবহারকারী ইনপুট দেওয়া নম্বর ১০০-এর চেয়ে ছোট হয়, তবে নম্বরের শুরুতে একটি শূন্য যোগ করা হবে। এটি নিশ্চিত করবে যে আমাদের প্রোগ্রাম ব্যবহারকারীর ইনপুট দেওয়া নম্বরটি বিজয়ী টিকেট নম্বরের সাথে তুলনা করতে পারে।

বিজয়ী টিকেট নম্বরের একটি লিস্ট সংজ্ঞায়িত করে শুরু করুন:

winners = ["033", "087", "183", "173", "012"]

প্রতিটি টিকেট নম্বর স্ট্রিং হিসেবে ফরম্যাট করা হয়েছে। এরপর, input() মেথড ব্যবহার করে ব্যবহারকারীকে একটি নম্বর ইনপুট দিতে বলুন:

to_check = input("Insert a number that you want to check: ")

ব্যবহারকারী যে নম্বরটি ইনপুট দিয়েছে, সেটি আপনি বিজয়ীদের লিস্টে খুঁজে বের করার চেষ্টা করবেন। এই মান স্ট্রিং হিসেবে ফরম্যাট করা হয়েছে।

ব্যবহারকারী তিন অঙ্কের নম্বর ইনপুট দিতে পারে না। ব্যবহারকারীর ইনপুট দেওয়া রাফল নম্বরটি সঠিকভাবে ফরম্যাট করা হয়েছে কিনা তা নিশ্চিত করতে zfill() মেথড ব্যবহার করুন। এই মেথড একটি নম্বরের শুরুতে শূন্য যোগ করে।

যেহেতু রাফল টিকেট নম্বর তিন অঙ্কের, আপনি zfill() মেথডের সাথে প্যারামিটার হিসেবে ৩ ব্যবহার করবেন:

to_check = to_check.zfill(3)

এই মেথড "to_check" এর মান সঠিকভাবে ফরম্যাট করা হয়েছে কিনা তা নিশ্চিত করবে। মান ৩ প্রতিফলিত করে "to_check" তে কতগুলো নম্বর থাকা উচিত। এটি প্রতিফলিত করে না যে কতগুলো শূন্য প্যাড করা উচিত।

এরপর, "if" স্টেটমেন্ট এবং "in" অপারেটর ব্যবহার করে চেক করুন যে "to_check" এর মান বিজয়ী রাফল টিকেট নম্বরের লিস্টে আছে কিনা:

if to_check in winners:
    print("Ticket #{} is a winner.".format(to_check))
else:
    print("Ticket #{} is not a winner.".format(to_check))

যদি টিকেটটি বিজয়ী নম্বরের সাথে মিলে যায়, তবে if স্টেটমেন্ট চলবে; অন্যথায় else স্টেটমেন্ট চলবে। কোডটি এক্সিকিউট করুন এবং ফলাফল দেখুন:

Insert a number that you want to check: 33
Ticket #033 is a winner.

আমাদের কোডটি সফলভাবে টিকেট #033 বিজয়ী কিনা তা চিহ্নিত করেছে। দেখুন যদি আপনি প্রোগ্রামে এমন একটি নম্বর ইনপুট দেন যা বিজয়ী টিকেটের সাথে মিলে না যায়:

Insert a number that you want to check: 182
Ticket #182 is not a winner.

প্রোগ্রামটি জানায় যে টিকেটটি বিজয়ী নয়।

পাইথন: সংখ্যাতে শূন্য প্যাড করা

দ্রষ্টব্য: নিচের উদাহরণ শুধুমাত্র পাইথন ২.৭ এবং তার পরবর্তী সংস্করণে কাজ করে।

প্রথম উদাহরণে, আপনি একটি স্ট্রিং হিসেবে সংরক্ষিত মানের সামনে শূন্য প্যাড করেছেন। যদি আপনি একটি সংখ্যার সামনে শূন্য প্যাড করতে চান, তবে একটি অন্য পদ্ধতি ব্যবহার করতে হবে।

মান लीজिए আপনি কর্মচারীদের শনাক্তকারী কোড (employee identifier codes) তৈরি করছেন। এগুলো একটি ব্যবসায়ের প্রতিটি কর্মচারিকে শনাক্ত করতে ব্যবহৃত হয়। প্রতিটি আইডি নম্বর তিন অঙ্ক দিয়ে শুরু হবে এবং কর্মচারীর উপনাম দিয়ে শেষ হবে।

শুরুতে, ব্যবহারকারীকে কর্মচারীর আইডির শুরুতে থাকা নম্বর ইনপুট দিতে বলুন। আপনি কর্মচারীর নামও জিজ্ঞেস করবেন:

id_numbers = int(input("Enter the ID number of the employee: "))
surname = input("Enter the surname of the employee: ")

এরপর, এই মানগুলোকে একটি স্ট্রিং-এ ফরম্যাট করুন। এটি করার জন্য .format() মেথড ব্যবহার করুন:

print("The employee identifier for {} is {:03d}{}.".format(surname, id_numbers, surname))

কার্লি ব্রেসেস (curly braces) আপনার স্ট্রিং-এ প্রতিস্থাপন किए जाने वाले মানগুলোকে প্রতিনিধিত্ব করে।

প্রথম সেট কার্লি ব্রেসেস কর্মচারীর উপনাম দিয়ে প্রতিস্থাপিত হবে। দ্বিতীয় সেট কার্লি ব্রেসেস "id_numbers" এর মান দিয়ে প্রতিস্থাপিত হবে। যদি ব্যবহারকারীর ইনপুট দেওয়া নম্বর তিন অঙ্কের চেয়ে ছোট হয়, তবে এই মানের সামনে শূন্য যোগ করা হবে।

শেষ সেট কার্লি ব্রেসেস কর্মচারীর শনাক্তকারীর শেষ অংশ উপস্থাপন করে যা হলো তাদের উপনাম। আমাদের প্রোগ্রামটি রান করুন:

Enter the ID number of the employee: 823
Enter the surname of the employee: SMITH
The employee identifier for SMITH is 823SMITH.

আমাদের প্রোগ্রামটি কাজ করছে। এই ক্ষেত্রে, আপনি তিন অঙ্কের একটি আইডি নম্বর ইনপুট দিয়েছেন। দেখুন যদি আপনি শুধু দুই অঙ্কের একটি আইডি নম্বর ইনপুট দিন:

Enter the ID number of the employee: 78
Enter the surname of the employee: JONES
The employee identifier for JONES is 078JONES.

আমাদের প্রোগ্রামটি এখনও বর্ণিত ফরম্যাটে একটি শনাক্তকারী তৈরি করে। প্রতিটি শনাক্তকারী তিনটি নম্বর এবং তারপর কর্মচারীর উপনাম ধারণ করে।

উপসংহার

আপনি পাইথন স্ট্রিং-এ zfill() মেথড ব্যবহার করে শূন্য প্যাড করতে পারেন। আপনি ইন্টিজার মানের সামনে শূন্য প্যাড করতে .format() মেথড ব্যবহার করতে পারেন।

এখন আপনি একটি এক্সপার্ট কোডারের মতো পাইথনে একটি মানের শুরুতে শূন্য যোগ করতে পারেন!

  1. পাইথনে ১ বিট গণনা (Hamming Weight)

  2. পাইথনে সিংগেল নাম্বার (Single Number)

  3. পাইথনে প্যালিনড্রোম নাম্বার যাচাই (Palindrome Number)

  4. পাইথনে ফ্যাক্টোরিয়াল (factorial) বের করার তিনটি পদ্ধতি