কম্পিউটার

ক্রেডিট কার্ড নম্বর যাচাই করার জন্য পাইথন প্রোগ্রাম বৈধ কি না


ধরুন আমাদের একটি ক্রেডিট কার্ড নম্বর আছে। কার্ড নম্বরটি বৈধ কি না তা পরীক্ষা করতে হবে। কার্ড নম্বরের নির্দিষ্ট বৈশিষ্ট্য রয়েছে −

  • এটি 4, 5 এবং 6

    দিয়ে শুরু হবে
  • এটি 16 সংখ্যার লম্বা হবে

  • সংখ্যায় শুধুমাত্র সংখ্যা থাকতে হবে

  • এতে '-'

    দ্বারা বিভক্ত চারটি গ্রুপে সংখ্যা থাকতে পারে
  • এটি অবশ্যই অন্য কোনো বিভাজক যেমন স্পেস বা আন্ডারস্কোর ব্যবহার করবে না

  • এটিতে অবশ্যই 4 বা তার বেশি পরপর একই সংখ্যা থাকবে না

সুতরাং, ইনপুট যদি s ="5423-2578-8632-6589" এর মত হয়, তাহলে আউটপুট হবে True

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • যদি s-এর '-' সংখ্যা 0-এর থেকে বেশি হয়, তাহলে
    • a :="-" দ্বারা পৃথক করা অংশগুলির একটি তালিকা
    • p:=1
    • যদি a এর আকার 4 এর মত না হয়, তাহলে
      • p:=শূন্য
      • a:=ফাঁকা তালিকা
    • a এর প্রতিটি b এর জন্য, do
      • যদি b এর আকার 4 এর মত না হয়, তাহলে
        • p:=শূন্য
        • লুপ থেকে বেরিয়ে আসুন
  • অন্যথায়,
    • p :=একটি সাবস্ট্রিং অনুসন্ধান করুন যা 4 বা 5 বা 6 দিয়ে শুরু হয় এবং অবশিষ্ট সংখ্যাগুলি 15 সংখ্যার লম্বা হয়
    • s :=s থেকে "-" সরান
    • q :=সার্চ সাবস্ট্রিং যেখানে 4 বা তার বেশি পরপর অক্ষর একই
    • যদি p শূন্য না হয় এবং q শূন্য হয়, তাহলে
      • সত্য ফেরান
    • অন্যথায়,
      • মিথ্যে ফেরত দিন

উদাহরণ

আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি

import re

def solve(s):
   if s.count("-")>0:
      a = s.split("-")
      p=1
      if len(a)!=4:
         p=None
         a=[]
      for b in a:
         if len(b)!=4:
            p=None
            break
         else:
            p = re.search("[456][0-9]{15}",s)
         s = s.replace("-","")
         q = re.search(".*([0-9])\\1{3}.*",s)

         if p!=None and q==None:
            return True
         else:
            return False

s = "5423-2578-8632-6589"
print(solve(s))

ইনপুট

"5423-2578-8632-6589"

আউটপুট

False

  1. হিপ চেক করার প্রোগ্রামটি পাইথনে সর্বোচ্চ হিপ তৈরি করছে নাকি নয়

  2. প্রাইম নম্বর চেক করতে পাইথন প্রোগ্রাম

  3. আর্মস্ট্রং নম্বর চেক করতে পাইথন প্রোগ্রাম

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