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

পাইথনে Set() ব্যবহার করে প্যাংগ্রাম (Pangram) চেকিং


এই আর্টিকেলে আমরা পাইথন ৩.x-এ একটি স্ট্রিং "প্যাংগ্রাম" (pangram) কিনা তা নির্ণয় করা শিখব। একটি প্যাংগ্রাম স্ট্রিং আঙ্গলিয়া ভাষার বর্ণমালার সব অক্ষর ধারণ করে। নিচের ইলাস্ট্রেশন দেখুন:

প্রদত্ত ইনপুট: str = 'This is the python blog on Tutorial point'
ডিজায়ারড আউটপুট: No
প্রদত্ত ইনপুট: str = 'I want to contribute to a 'dxyzwuvghlkfmq' open source project'
ডিজায়ারড আউটপুট: Yes

ডিফিনিশন অনুযায়ী, একটি পারফেক্ট প্যাংগ্রামে '২৬ ইংরেজি অক্ষর' প্রতিটি ঠিক একবার থাকে। এই টিউটোরিয়ালে 'পারফেক্ট প্যাংগ্রাম' কনসেপ্ট অন্তর্ভুক্ত নয়।

এখন সমস্যা স্টেটমেন্ট এবং কনস্ট্রেইন্টস দেখি।

প্রব্লেম স্টেটমেন্ট - একটি স্ট্রিং দেওয়া আছে, চেক করুন এটি প্যাংগ্রাম কিনা।

কনস্ট্রেইন্টস

  1. লোয়ারকেস এবং আপারকেস একই माना जायेगा।
  2. উপরের 'পারফেক্ট প্যাংগ্রাম' কেসের কোনো বাধ্যতা নেই।
ইনপুট: ইনপুটের প্রথম লাইনে টেস্ট স্ট্রিং 'str_input' থাকে
আউটপুট: শর্তসমূহ সত্য হলে 'String is a Pangram' প্রিন্ট করুন, অন্যথায় 'String is not a Pangram'।

রিলেটেড ডেটা স্ট্রাকচার

Set() এবং List() কম্প্রিহেনশন

প্রিরিকুইসাইট

স্ট্রিং এবং স্ট্রিং অপারেশন

আমরা ক्वিকলি অ্যালগরিদম দেখি যা আমরা এই প্রობলেমে বাস্তবায়ন করছি:

  1. প্রথম টাস্ক হলো সম্পূর্ণ ইনপুট স্ট্রিংকে লোয়ারকেস বা আপারকেসে রূপান্তর করা। এখানে আমি upper() মেথড ব্যবহার করছি পাইথন ৩.x-এ string ডেটা টাইপের।

  2. এখন set(str_input) ফাংশন দিয়ে ইনপুট স্ট্রিংয়ের সব ডিস্টিনক্ট এলিমেন্টের একটি লিস্ট তৈরি করা যায়।

  3. এখন একটি নতুন লিস্ট "dist_list" তৈরি করব যেটিতে শুধু ডিস্টিনক্ট অক্ষর রয়েছে, কোনো সংখ্যা বা স্পেশাল ক্যারেক্টার নেই।

  4. এখন চেক করব dist_list-এর দৈর্ঘ্য ২৬ কিনা। শর্ত পূরণ হলে ইনপুট প্যাংগ্রাম, নাহলে নয়।

উদাহরণ

# ইউজার-ডিফাইনড ফাংশন প্যাংগ্রাম চেক করার জন্য
def check_pangram(input):
    # ইনপুট স্ট্রিংকে আপারকেসে রূপান্তর
    str_input = str_input.upper()
    # ইনপুট স্ট্রিংকে Set()-এ রূপান্তর
    # ডিস্টিনক্ট এলিমেন্টের একটি লিস্ট তৈরি হবে
    str_input = set(str_input)
    # অক্ষরগুলো নম্বর এবং স্পেশাল ক্যারেক্টার থেকে পৃথক করা
    # ord(ch) ক্যারেক্টারের ASCII ভ্যালু রিটার্ন করে
    dist_list = [char for char in str_input if ord(char) in range(ord('a'), ord('z')+1)]
    if len(dist_list) == 26:
        return 'String is a Pangram'
    else:
        return 'String is not a Pangram'

# এক্সিকিউটেবল মেইন ফাংশন
if __name__ == "__main__":
    str_input = input()
    print(check_pangram(str_input))

উপসংহার

এই আর্টিকেলে আমরা পাইথন ৩.x-এ একটি স্ট্রিং প্যাংগ্রাম কিনা তা বের করার পদ্ধতি শিখেছি। আপনি একই অ্যালগরিদম ব্যবহার করে যেকোনো অন্য প্রোগ্রামিং ল্যাঙ্গুয়েজে প্যাংগ্রাম ডিটেক্টর প্রোগ্রাম বাস্তবায়ন করতে পারেন।

  1. পাইথনে স্ট্রিং প্যাংগ্রাম (Pangram) কিনা চেক করা

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

  3. পাইথন ৩-এ ডিকশনারি ব্যবহার করে স্ট্রিং ফরম্যাট করা

  4. পাইথনে স্ট্রিংকে JSON-এ রূপান্তর করা