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

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

यह प्रोग्राम क्रेडिट कार्ड नंबर की वैधता जांचता है। वैध क्रेडिट कार्ड नंबर के निम्नलिखित नियम होते हैं:

वैधता नियम

  1. यह 4, 5, या 6 से शुरू होना चाहिए
  2. यह 16 अंकों का होना चाहिए
  3. इसमें केवल अंक होने चाहिए
  4. इसमें चार समूह हो सकते हैं जो '-' से अलग हों (जैसे 1234-5678-9012-3456)
  5. कोई अन्य विभाजक (स्पेस, अंडरस्कोर) अनुमत नहीं
  6. 4 या अधिक लगातार समान अंक नहीं होने चाहिए

एल्गोरिदम

  1. यदि नंबर में '-' है:
    • '-' से विभाजित करें
    • ठीक 4 समूह होने चाहिए, प्रत्येक 4 अंकों का
  2. अन्यथा:
    • रेगेक्स से जांचें: 4/5/6 से शुरू, फिर 15 अंक
    • सभी '-' हटाएं
    • 4+ लगातार समान अंकों की जांच करें
  3. दोनों शर्तें पूरी हों तो वैध, अन्यथा अवैध

Python कार्यान्वयन

import re

def is_valid_credit_card(s):
    """क्रेडिट कार्ड नंबर की वैधता जांचें"""
    # हाइफ़न वाले फॉर्मेट की जांच
    if s.count("-") > 0:
        parts = s.split("-")
        # ठीक 4 भाग होने चाहिए
        if len(parts) != 4:
            return False
        # प्रत्येक भाग 4 अंकों का होना चाहिए
        for part in parts:
            if len(part) != 4 or not part.isdigit():
                return False
        # हाइफ़न हटाकर आगे की जांच के लिए तैयार करें
        s = s.replace("-", "")
    else:
        # हाइफ़न के बिना: 4/5/6 से शुरू, फिर 15 अंक
        if not re.match(r'^[456]\d{15}$', s):
            return False
    
    # 4+ लगातार समान अंकों की जांच
    if re.search(r'(\d)\1{3,}', s):
        return False
    
    return True

# परीक्षण
test_cases = [
    "5423-2578-8632-6589",  # वैध
    "4253625879615786",     # वैध (बिना हाइफ़न)
    "5123-4567-8912-3456",  # वैध
    "5123-4567-8912-345",   # अवैध: 15 अंक
    "5123-4567-8912-34567", # अवैध: 17 अंक
    "61234-567-8912-3456",  # अवैध: गलत समूहन
    "5123-4567-8912-345a",  # अवैध: गैर-अंक
    "4444-4444-4444-4444",  # अवैध: 4+ लगातार समान अंक
    "5123 - 4567 - 8912 - 3456"  # अवैध: स्पेस विभाजक
]

for card in test_cases:
    print(f"{card}: {'वैध' if is_valid_credit_card(card) else 'अवैध'}")

आउटपुट

5423-2578-8632-6589: वैध
4253625879615786: वैध
5123-4567-8912-3456: वैध
5123-4567-8912-345: अवैध
5123-4567-8912-34567: अवैध
61234-567-8912-3456: अवैध
5123-4567-8912-345a: अवैध
4444-4444-4444-4444: अवैध
5123 - 4567 - 8912 - 3456: अवैध

नोट

मूल उदाहरण में दिया गया आउटपुट False गलत प्रतीत होता है क्योंकि "5423-2578-8632-6589" सभी नियमों का पालन करता है। ऊपर दिया गया सही कार्यान्वयन इसे वैध मानता है।

  1. पायथन में हीप मैक्स हीप बना रहा है या नहीं जांचने का प्रोग्राम पायथन में हीप मैक्स हीप बना रहा है या नहीं जांचने का प्रोग्राम

    मान लीजिए हमारे पास एक सूची है जो हीप ट्री का प्रतिनिधित्व करती है। जैसा कि हम जानते हैं हीप एक पूर्ण बाइनरी ट्री है। हमें जांचना है कि तत्व मैक्स हीप बना रहे हैं या नहीं। जैसा कि हम जानते हैं मैक्स हीप के लिए प्रत्येक तत्व अपने दोनों बच्चों से बड़ा होता है। इसलिए, यदि इनपुट है nums = [8, 6, 4, 2, 0

  1. पायथन प्रोग्राम: अभाज्य संख्या जांचें पायथन प्रोग्राम: अभाज्य संख्या जांचें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक संख्या दी गई है, हमें जांचना है कि दी गई संख्या अभाज्य संख्या है या नहीं। 1 से बड़ी दी गई धनात्मक संख्या जिसके 1 और संख्या स्वयं के अलावा कोई अन्य गुणनखंड नहीं होते, उसे अभाज्य संख्या कहा जाता है। 2, 3, 5, 7 आदि अभाज्य संख्

  1. पायथन प्रोग्राम: आर्मस्ट्रांग नंबर चेक करें पायथन प्रोग्राम: आर्मस्ट्रांग नंबर चेक करें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक इंटीजर n दिए जाने पर, हमें जांचना होगा कि दिया गया इंटीजर आर्मस्ट्रांग नंबर है या नहीं। एक पॉजिटिव इंटीजर को n क्रम का आर्मस्ट्रांग नंबर कहा जाता है यदि abcd... = a^n + b^n + c^n +