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
- 退出循环
- 如果b的大小不等于4,则
- 否则,
- 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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP