আপনি পাইথন স্ট্রিং থেকে ক্যারেক্টার রিমুভ করতে পারেন replace() বা translate() ব্যবহার করে। এই দুটি মেথডই একটি ক্যারেক্টার বা স্ট্রিংকে একটি নির্দিষ্ট ভ্যালু দিয়ে রিপ্লেস করে। যদি একটি খালি স্ট্রিং স্পেসিফাই করা হয়, তবে আপনি যেই ক্যারেক্টার বা স্ট্রিংটি সিলেক্ট করেছেন সেটি কোনো রিপ্লেসমেন্ট ছাড়া স্ট্রিং থেকে রিমুভ হয়ে যায়।
পাইথন স্ট্রিং থেকে একটি ক্যারেক্টার রিমুভ করা
প্রতিটি স্ট্রিং उन মানগুলো ধারণ করে না যা আমরা চাই। একজন ইউজার ইনপুট ফিল্ডে এমন একটি সিম্বল দিতে পারে যা আপনি দেখতে চান না। আপনি একটি স্ট্রিং থেকে কোনো নির্দিষ্ট লেটারের সব ইনস্ট্যান্স রিমুভ করতে চাইতে পারেন।
কোনো ক্যারেক্টার রিমুভ করতে চান সেটি মেটার করে না। পাইথন আপনাকে কভার করেছে!
এই গাইডে, আমরা আলোচনা করব কীভাবে একটি স্ট্রিং থেকে ক্যারেক্টার বা ক্যারেক্টার সেট রিমুভ করতে হয়। পথে উদাহরণগুলোও রেফার করব।
আমরা নিচের পদ্ধতিগুলো আলোচনা করব:
replace()মেথড ব্যবহার করেtranslate()মেথড ব্যবহার করে- ইন্ডেক্সিং ব্যবহার করে শেষ ক্যারেক্টার রিমুভ করা
শুরু করি!
পাইথন স্ট্রিং থেকে ক্যারেক্টার রিমুভ: replace()
স্ট্রিং replace() ফাংশন একটি ক্যারেক্টারকে একটি নতুন ক্যারেক্টার দিয়ে রিপ্লেস করে। এই ফাংশনটি যেকোনো ক্যারেক্টারকে একটি খালি স্ট্রিং দিয়ে রিপ্লেস করতে ব্যবহার করা যায়।
আমরা একটি প্রোগ্রাম বানাচ্ছি যা ইউজার থেকে ইউজারনেম ইনপুট নেয়। ইউজারনেমে আন্ডারস্কোর (_) ক্যারেক্টার অনুমোদিত নয়। একটি নতুন পাইথন ফাইল খুলুন এবং নিচের কোড পেস্ট করুন:
username = input("Choose a username: ")
final_username = username.replace("_", "")
print("Your username is: " + final_username)
এই কোড input() মেথড ব্যবহার করে ইউজারকে ইউজারনেম চয়ন করতে বলে।
replace() মেথড আন্ডারস্কোর ক্যারেক্টারটি অরিজিনাল স্ট্রিং থেকে রিমুভ করে এবং সেই ক্যারেক্টারটির সকল ইনস্ট্যান্সকে একটি খালি স্ট্রিং দিয়ে রিপ্লেস করে। তারপর, আমরা আন্ডারস্কোর ছাড়া ইউজারনেম কনসোলে প্রিন্ট করি।
প্রোগ্রামটি রান করি:
Choose a username: pythonista_101 Your username is: pythonista101
আমাদের কোড আমরা যে ইউজারনেমটি স্পেসিফাই করেছি সেটি থেকে আন্ডারস্কোর ক্যারেক্টার রিমুভ করেছে। আমাদের কোড সেই স্ট্রিং-ও কাজ করে যাতে আন্ডারস্কোর নেই:
Choose a username: pythonista101 Your username is: pythonista101
যখন ইউজারনেমে আন্ডারস্কোর থাকে না, তখন কিছুই হয় না।
replace() ব্যবহার করে একাধিক ক্যারেক্টার রিমুভ করা
আপনি যদি একাধিক ক্যারেক্টার স্ট্রিং থেকে রিমুভ করতে চান তবে কী হবে? পাইথন আপনাকে সাহায্য করবে। আমরা replace() মেথড একটি ফর লুপের ভিতরে ব্যবহার করে একাধিক ক্যারেক্টার স্ট্রিং থেকে রিমুভ করতে পারি।
আমাদের পिछले উদাহরণে, আমরা একটি ইউজারনেম থেকে আন্ডারস্কোর ক্যারেক্টার রিমুভ করেছিলাম। যদি আমরা স্ট্রিং থেকে সব পিরিয়ড (ফুল স্টপ), আন্ডারস্কোর, এবং এক্সক্লামেশন মার্ক রিমুভ করতে চাই? একটি নতুন পাইথন ফাইল তৈরি করুন এবং এই কোড পেস্ট করুন:
username = input("Choose a username: ")
disallowed_characters = "._!"
for character in disallowed_characters:
username = username.replace(character, "")
print("Your username is: " + username)
প্রথমে, আমরা ইউজারকে ইউজারনেম চয়ন করতে বলেছি। তারপর আমরা একটি স্ট্রিং ডিফাইন করেছি যেটি उन সব ক্যারেক্টার ধারণ করে যা ইউজারনেমে থাকা উচিত নয়।
এরপর, আমরা একটি ফর লুপ তৈরি করেছি। এই ফর লুপ disallowed_characters স্ট্রিং-এর প্রতিটি ক্যারেক্টারের মধ্য দিয়ে ইটারেট করে। প্রতিটি ইটারেশনে, ফর লুপ যে ক্যারেক্টারের ওপর ইটারেট করছে সেটি username স্ট্রিং-এ একটি ব্ল্যাঙ্ক ক্যারেক্টার দিয়ে রিপ্লেস হয়।
কোডটি রান করি:
Choose a username: pythonista.101!!! Your username is: pythonista101
আমাদের কোড পিরিয়ড এবং এক্সক্লামেশন মার্কগুলো ফিল্টার আউট করেছে।
পাইথন স্ট্রিং থেকে ক্যারেক্টার রিমুভ: translate()
পাইথন translate() মেথড একটি ক্যারেক্টার টেবিলের কন্টেন্ট অনুযায়ী স্ট্রিং-এ ক্যারেক্টার রিপ্লেস করে। এই মেথড একটি আর্গুমেন্ট গ্রহণ করে: ক্যারেক্টার ম্যাপ করার ট্রান্সলেশন টেবিল।
এই মেথড ব্যবহার করতে হলে, আমাদের একটি ট্রান্সলেশন টেবিল তৈরি করতে হবে। এই টেবিল নির্দিষ্ট করে স্ট্রিং-এ কোন ক্যারেক্টারগুলো রিপ্লেস করা উচিত।
চলুন translate() মেথড ব্যবহার করে ইউজারনেম থেকে সব আন্ডারস্কোর রিমুভ করি:
username = input("Choose a username: ")
final_username = username.translate({ ord("_"): None })
print("Your username is: " + final_username)
এই কোড _ ক্যারেক্টারের প্রতিটি ইনস্ট্যান্সকে None ভ্যালু দিয়ে রিপ্লেস করে। পাইথন ord() মেথড _ ক্যারেক্টারের সাথে জড়িত ইউনিকোড কোড রিটার্ন করে। translate() মেথড এই কোডটি ব্যবহার করে আমরা যে ক্যারেক্টারটি রিমুভ করতে চাই সেটি চিহ্নিত করে।
translate() ব্যবহার করে একাধিক ক্যারেক্টার রিমুভ করা
আপনি translate() ব্যবহার করে স্ট্রিং থেকে একাধিক ক্যারেক্টার রিমুভ করতে পারেন।
আমরা এটি একটি ইটারেটর তৈরি করে করতে পারি যা আমরা যে ক্যারেক্টারগুলো স্ট্রিং থেকে রিমুভ করতে চাই সেগুলোর তালিকার মধ্য দিয়ে লুপ করবে।
চলুন ইউজারনেম থেকে সব আন্ডারস্কোর, পিরিয়ড, এবং এক্সক্লামেশন মার্ক রিমুভ করি:
username = input("Choose a username: ")
final_username = username.translate({ ord(c): None for c in "._!" })
print("Your username is: " + final_username)
translate() মেথড চেক করে username স্ট্রিং-এর প্রতিটি ক্যারেক্টার কি একটি ফুল স্টপ, এক্সক্লামেশন পয়েন্ট, বা আন্ডারস্কোর এর সমান। যদি এই ক্যারেক্টারগুলোর যেকোনো একটি পাওয়া যায়, তবে সেটি None দিয়ে রিপ্লেস হয়। এতে ক্যারেক্টারটি স্ট্রিং থেকে রিমুভ হয়ে যায়।
আমরা আমাদের এক্সক্লুডেড ক্যারেক্টার লিস্টের প্রতিটি ক্যারেক্টারের মধ্য দিয়ে ইটারেট করার জন্য একটি পাইথন লিস্ট কমপ্রিহেনশন ব্যবহার করছি।
প্রোগ্রামটি টেস্ট করি:
Choose a username: pythonista_100! Your username is: pythonista101
আমাদের কোড সফলভাবে আমরা যে স্পেশাল ক্যারেক্টারগুলো স্পেসিফাই করেছি সেগুলো স্ট্রিং থেকে রিমুভ করেছে।
পাইথন: স্ট্রিং থেকে শেষ ক্যারেক্টার রিমুভ করা
একটি স্ট্রিং থেকে শেষ ক্যারেক্টার রিমুভ করতে [:-1] স্লাইস নোটেশন ব্যবহার করুন। এই নোটেশন ইনডেক্স পজিশন -1 (একটি লিস্টে শেষ ক্যারেক্টার) এ থাকা ক্যারেক্টারটি সিলেক্ট করে। তারপর সিনট্যাক্সটি সেটি বাদে সব ক্যারেক্টার রিটার্ন করে।
স্ট্রিং থেকে শেষ ক্যারেক্টার রিমুভ করার সিনট্যাক্স:
your_string = "A string" print(your_string[:-1])
উদাহরণ: শেষ ক্যারেক্টার রিমুভ করা
আমরা একটি প্রোগ্রাম বানাব যা একটি কর্মীর আইডেন্টিফায়ার থেকে শেষ ক্যারেক্টার রিমুভ করবে। এই ক্যারেক্টারটি বলে দেয় কোন ডিপার্টমেন্টের জন্য কর্মীটি কাজ করে।
উদাহরণস্বরূপ, M ভ্যালু বলে দেয় কর্মীটি মার্কেটিং ডিপার্টমেন্টের জন্য কাজ করে। আমরা এই ক্যারেক্টারটি রিমুভ করব। কর্মী ট্র্যাক করার এই সিস্টেম একটি নতুন সিস্টেম দিয়ে রিপ্লেস হচ্ছে। নতুন সিস্টেম ট্র্যাক করে কর্মীটি কোন ডিপার্টমেন্টের জন্য কাজ করে।
চলুন input() মেথড ব্যবহার করে ইউজার থেকে একটি কর্মীর আইডেন্টিফায়ার ইনসার্ট করতে বলি:
identifier = input("What is the employee's identifier? ")
এরপর, আমরা আইডেন্টিফায়ার থেকে শেষ ক্যারেক্টার রিমুভ করি:
new_identifier = identifier[:-1]
[:-1] হলো একটি স্ট্রিং স্লাইস অপারেশন যা লিস্ট থেকে শেষ ক্যারেক্টার রিমুভ করে। আমরা নেগেটিভ ইন্ডেক্সিং ব্যবহার করি স্ট্রিং-এর শেষ থেকে আইটেম রিট্রিভ করার জন্য। এখন, কর্মীর নতুন আইডেন্টিফায়ার কনসোলে ডিসপ্লে করি:
print("The employee's new identifier is {}.".format(new_identifier))
format() স্টেটমেন্ট আমাদের স্ট্রিং-এর কার্লি ব্রেসগুলো কর্মীর নতুন আইডেন্টিফায়ার দিয়ে রিপ্লেস করে। কোডটি রান করি এবং দেখি কী হয়:
What is the employee's identifier? 28371M The employee's new identifier is 28371.
আমাদের প্রোগ্রাম একটি কর্মীর আইডেন্টিফায়ার থেকে শেষ ভ্যালু রিমুভ করে।
উপসংহার
আপনি replace() বা translate() ব্যবহার করে একটি স্ট্রিং থেকে ক্যারেক্টার বা একাধিক ক্যারেক্টার রিমুভ করতে পারেন। replace() এবং translate() মেথড দুটোই একই ফলাফল রিটার্ন করে: আপনি যেই ক্যারেক্টারগুলো স্পেসিফাই করেছেন সেগুলো বাদে স্ট্রিং।
বিগিনারদের জন্য, replace() মেথড সহজে ব্যবহার করা যায়। কারণ এটা শুধু দুটি প্যারামিটার এক্সেপ্ট করে।
প্রথম প্যারামিটার হলো আপনি যে ক্যারেক্টারটি রিপ্লেস করতে চান। দ্বিতীয় প্যারামিটার হলো যে ভ্যালু দিয়ে আপনি ক্যারেক্টারটি রিপ্লেস করতে চান। আপনি যদি একাধিক ক্যারেক্টার রিপ্লেস করতে চান, তবে ফর লুপ ব্যবহার করতে পারেন।
পাইথন সম্পর্কে আরও জানতে আগ্রহী? আপনার লার্নিং যাত্রা এগিয়ে নেওয়ার জন্য এক্সপার্ট টিপস পেতে আমাদের সম্পূর্ণ How to Learn Python গাইডটি চেক করুন।