Python程序检查信用卡号码是否有效

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不为空并且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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程