Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

क्रेडिट कार्ड नंबर वैलिड है या नहीं जांचने का पायथन प्रोग्राम

मान लीजिए हमारे पास एक क्रेडिट कार्ड नंबर है। हमें जांचना है कि कार्ड नंबर वैध है या नहीं। कार्ड नंबर्स में कुछ विशेषताएं होती हैं:

  • यह 4, 5 और 6 से शुरू होगा

  • यह 16 डिजिट्स लंबा होगा

  • नंबर्स में केवल डिजिट्स होने चाहिए

  • इसमें '-' से अलग किए गए चार ग्रुप्स में डिजिट्स हो सकते हैं

  • इसमें स्पेस या अंडरस्कोर जैसे कोई अन्य सेपरेटर नहीं होने चाहिए

  • इसमें 4 या अधिक लगातार समान डिजिट्स नहीं होने चाहिए

तो, यदि इनपुट s = "5423-2578-8632-6589" है, तो आउटपुट True होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  • यदि s में '-' की संख्या 0 से अधिक है, तो
    • a := "-" से अलग किए गए भागों की सूची
    • p:= 1
    • यदि a का आकार 4 के समान नहीं है, तो
      • p:= null
      • a:= खाली सूची
    • a में प्रत्येक b के लिए, करें
      • यदि b का आकार 4 के समान नहीं है, तो
        • p:= null
        • लूप से बाहर निकलें
  • अन्यथा,
    • p := एक सबस्ट्रिंग खोजें जो 4 या 5 या 6 से शुरू हो और शेष 15 डिजिट्स लंबी हो
    • s := s से "-" हटाएं
    • q := सबस्ट्रिंग खोजें जहां 4 या अधिक लगातार कैरेक्टर्स समान हों
    • यदि p null नहीं है और q null है, तो
      • True लौटाएं
    • अन्यथा,
      • False लौटाएं

उदाहरण

बेहतर समझ के लिए निम्न कार्यान्वयन देखें

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. - पायथन प्रोग्राम: एनाग्राम शब्दों के सबसे बड़े सबसेट का आकार खोजना

    एक लोअरकेस ऐरे दिया गया है। हमारा कार्य उस स्ट्रिंग के सबसे बड़े सबसेट का आकार ढूंढना है जो एक-दूसरे के एनाग्राम हैं। स्ट्रिंग का एनाग्राम का अर्थ है कि एक स्ट्रिंग दूसरे का एनाग्राम है यदि दूसरा केवल पहले का पुनर्व्यवस्थित रूप है। यहां हम पायथन में Counter() मेथड का उपयोग करके इस समस्या को जल्दी हल

  1. - पायथन में स्ट्रिंग स्लाइसिंग से स्ट्रिंग रोटेट करना

    एक स्ट्रिंग दी गई है, हमारा कार्य स्ट्रिंग को दो तरह से स्लाइस करना है। एक क्लॉकवाइज और दूसरा एंटीक्लॉकवाइज।1. लेफ्ट (या एंटीक्लॉकवाइज) दी गई स्ट्रिंग को d एलिमेंट्स द्वारा रोटेट करें (जहां d <= n)।2. राइट (या क्लॉकवाइज) दी गई स्ट्रिंग को d एलिमेंट्स द्वारा रोटेट करें (जहां d <= n)।उदाहरणInput: stri

  1. - श्रृंखला n+nm+nmm...+n(m बार) की गणना के लिए पायथन प्रोग्राम

    समस्या विवरण यहां n दिया गया मान है जो धनात्मक संख्या है, m वह संख्या है जितनी बार श्रृंखला चलती है। हमारा कार्य इस श्रृंखला की गणना करना है। एल्गोरिदम n, m इनपुट करें। संख्या को स्ट्रिंग में बदलें। परिणाम को संख्या और स्ट्रिंग के रूप में आरंभ करें। शेष पद जोड़ें। स्ट्रिंग को जोड़कर n, nn, nnn...