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

পাইথন স্ট্রিং রিভার্স: ধাপে ধাপে গাইড

আপনি পাইথনে স্লাইসিং বা reversed() মেথড ব্যবহার করে একটি স্ট্রিং রিভার্স করতে পারেন। একটি রিকার্সিভ ফাংশন যা স্ট্রিংয়ের প্রতিটি ক্যারেক্টার পড়ে এবং পুরো স্ট্রিং রিভার্স করে, স্ট্রিং রিভার্স করার আরেকটি সাধারণ পদ্ধতি। স্ট্রিং রিভার্স করার জন্য স্পষ্টভাবে ডিজাইন করা কোনো ফাংশন নেই।


পাইথনে কাজ করার সময়, আপনার কাছে এমন একটি স্ট্রিং থাকতে পারে যেটি আপনি রিভার্স করতে চান। উদাহরণস্বরূপ, বলুন আপনি একটি গেম তৈরি করছেন। আপনি ব্যবহারকারীদের ইউজারনেম জেনারেট করতে দিতে পারেন তাদের নাম প্রোগ্রামে সাবমিট করিয়ে এবং প্রোগ্রামটি তা রিভার্স করিয়ে।

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

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

পাইথনে স্ট্রিং কীভাবে রিভার্স করবেন

একটি স্ট্রিং রিভার্স করতে আপনি তিনটি মেথড ব্যবহার করতে পারেন:

  • [::-1] সিনট্যাক্স ব্যবহার করে স্ট্রিং স্লাইসিং
  • reversed() ফাংশন ব্যবহার করে একটি রিভার্স ইটেরেটর তৈরি করা যা একটি স্ট্রিং পড়ে এবং এর কন্টেন্ট রিভার্স করে
  • একটি রিকার্সিভ ফাংশন ব্যবহার করা

চলুন এই তিনটি মেথড আলোচনা করি।

স্লাইসিং ব্যবহার করে পাইথন রিভার্স স্ট্রিং

পাইথন স্ট্রিং স্লাইস করার সময়, আপনি [::-1] স্লাইসিং সিকোয়েন্স ব্যবহার করে স্ট্রিংয়ের একটি রিভার্সড কপি তৈরি করতে পারেন। এই সিনট্যাক্স স্ট্রিংয়ের সকল ক্যারেক্টার বের করে এবং সেগুলো রিভার্স করে।

মান লেন আমাদের কাছে "Python" মান সহ একটি স্ট্রিং আছে। আমরা এই স্ট্রিংকে রিভার্স অর্ডারে দেখতে চাই। আমরা [::-1] সিনট্যাক্স ব্যবহার করে সেটি করতে পারি:

string = "Python"
reversed = string[::-1]
print(reversed)

আমাদের কোড ফেরত দেয়: nohtyP।

আমরা reversed নামে একটি পাইথন ভেরিয়েবল ঘোষণা করি যা আমাদের রিভার্সড স্ট্রিং সংরক্ষণ করে। [::-1] সিনট্যাক্স আমাদের "Python" স্ট্রিং মান ধারণকারী ভেরিয়েবলের শেষে যোগ করা হয়েছে।

এটি একটি কার্যকর মেথড কারণ এটি সংক্ষিপ্ত এবং সহজ। আপনাকে শুধু একটি স্ট্রিংয়ের শেষে [::-1] যোগ করতে হয় তা রিভার্স করতে।

এই মেথডটি বিভ্রান্তিকর দেখতে পারে কারণ সিনট্যাক্সটি স্পষ্টভাবে কনভেয় করে না যে এটি স্ট্রিং রিভার্স করতে ব্যবহার করা যায়। ফলস্বরূপ, অনেক ডেভেলপার এই টেকনিক এড়িয়ে চলেন।

reversed() ব্যবহার করে রিভার্স স্ট্রিং পাইথন

পাইথনে একটি বিল্ট-ইন ফাংশন রয়েছে যা একটি রিভার্স ইটেরেটর তৈরি করতে ব্যবহৃত হয়: reversed() ফাংশন। এই ইটেরেটর কাজ করে কারণ স্ট্রিংগুলো ইনডেক্সড, তাই স্ট্রিংয়ের প্রতিটি মান আলাদা করে এক্সেস করা যায়।

রিভার্স ইটেরেটরটি স্ট্রিংয়ের এলিমেন্টগুলো রিভার্স অর্ডারে ইটেরেট করতে ব্যবহৃত হয়।

এখানে একটি উদাহরণ যেটি reversed() ব্যবহার করে একটি রিভার্স ইটেরেটর তৈরি করে যা আমাদের স্ট্রিংকে রিভার্স অর্ডারে প্রিন্ট করে:

for char in reversed("Python"):
    print(char)

আমাদের কোড ফেরত দেয়:

n
o
h
t
y
P

আমাদের কোডে, আমরা একটি পাইথন for লুপ নির্দিষ্ট করি যা reversed() মেথডের প্রতিটি আইটেমের মধ্য দিয়ে ইটেরেট করে। আপনি দেখতে পাচ্ছেন যে আমাদের কোড আমাদের স্ট্রিংকে রিভার্স অর্ডারে প্রিন্ট করেছে।

আমাদের কোড প্রতিটি ক্যারেক্টার নতুন লাইনে প্রিন্ট করেছে। এটি ঘটেছে কারণ আমরা reversed() for লুপের সাথে ব্যবহার করেছি। যদি আমরা চাই আমাদের স্ট্রিং একই লাইনে দেখায়, তবে আমাদের reversed() কে join() মেথডের সাথে ব্যবহার করতে হবে।

আমরা join() মেথড ব্যবহার করতে পারি আমাদের reversed() ইটেরেটর থেকে সকল ক্যারেক্টার একসাথে 머র্জ করে একটি স্ট্রিং बनाने के लिए।

এখানে একটি উদাহরণ যেটি reversed() এবং join() ব্যবহার করে একটি পাইথন স্ট্রিং রিভার্স করে:

"".join(reversed("Python"))

আমাদের কোড ফেরত দেয়: nohtyP।

স্ট্রিং রিভার্স করার এই মেথডটি উপযোগী কারণ, উপরে আলোচিত স্লাইসিং মেথডের মতো, এটি কম্প্যাক্ট এবং সংক্ষিপ্ত। এই মেথডের পাশাপাশি পড়া এবং বুঝতে সহজ হওয়ার সুবিধা রয়েছে। আপনি যদি আগে reversed() বা join() মেথডগুলো দেখে না থাকেন, তবুও আপনি অনুমান করতে পারবেন কী ঘটছে।

রিকার্সিভ ব্যবহার করে স্ট্রিং রিভার্স পাইথন

রিকার্সিভ হলো কম্পিউটার সায়েন্সে ব্যবহৃত একটি টার্ম যা এমন একটি ফাংশনকে বর্ণনা করে যা নিজেই নিজেকে কল করে, সরাসরি বা পরোক্ষভাবে। এখানে পাইথন রিকার্সিভ ব্যবহার করে একটি স্ট্রিং রিভার্স করার উদাহরণ:

def reverse_string(string):
    if len(string) == 0:
        return string
    else:
        return reverse_string(string[1:]) + string[0]

reverse_string("Python")

আমাদের কোড ফেরত দেয়: nohtyP।

এই মেথড স্লাইসিং ব্যবহার করে আমাদের স্ট্রিং রিভার্স করে। আগের মতো একটি সিঙ্গল স্লাইস অপারেশন ব্যবহার করার বদলে, আমরা reverse_string নামে একটি পাইথন ফাংশন ব্যবহার করেছি।

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

আমাদের ফাংশন স্ট্রিংটি গ্রহণ করে যেটি আমরা রিভার্স করতে চাই। যদি স্ট্রিংয়ে কোনো ক্যারেক্টার না থাকে, তবে স্ট্রিংয়ের মান ফেরত দেওয়া হয়। অন্যথায়, আমরা আবার ফাংশনটি কল করি string[1:] সিনট্যাক্স আর্গুমেন্ট হিসেবে ব্যবহার করে। আমরা আমাদের স্ট্রিংয়ের প্রথম ক্যারেক্টাকে এই ফাংশন যা ফেরত দেয় তার সাথে যোগ করি।

উপসংহার

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

আমরা [::-1] স্লাইসিং মেথড ব্যবহার করে স্লাইসিং এর মাধ্যমে স্ট্রিং রিভার্স করতে পারি, reversed() এবং join() ফাংশন ব্যবহার করে রিভার্স ইটেরেশন এর মাধ্যমে স্ট্রিং রিভার্স করতে পারি, বা রিকার্সিভ ব্যবহার করে একটি রিকার্সিভ ফাংশন দিয়ে স্ট্রিং রিভার্স করতে পারি।

এই টিউটোরিয়ালে, আমরা স্লাইসিং, reversed() এবং join(), এবং রিকার্সিভ ব্যবহার করে পাইথনে স্ট্রিং রিভার্স করার পদ্ধতি আলোচনা করেছি। আমরা এই স্ট্রিং মেথডগুলোর প্রতিটির একটি উদাহরণ অন্বেষণ করেছি।

পাইথন কোড লিখা সম্পর্কে আরও জানতে, আমাদের সার্বিক How to Learn Python গাইড পড়ুন।

  1. পাইথন ইন্টারপ্রেটার: ধাপে ধাপে গাইড

  2. পাইথনে স্ট্রিংয়ের স্বরবর্ণ রিভার্স

  3. পাইথনে স্ট্রিং রিভার্স (ইন-প্লেস)

  4. পাইথনে স্ট্রিং রিভার্স করা