用于检查信用卡号是否有效的 Python 程序
假设我们有一个信用卡号。我们必须检查卡号是否有效。卡号具有某些属性-
它将以4、5和6开头
它将是16位数字的长度
数字只能包含数字
它可能有四组数字,以“-”分隔
它不得使用任何其他分隔符,如空格或下划线
它不能有4个或更多连续的相同数字
因此,如果输入类似于s="5423-2578-8632-6589",那么输出将为True
示例
让我们看下面的实现来更好地理解
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