Python 程序检查信用卡号是否有效
pythonserver side programmingprogramming更新于 2025/12/23 14:04:17
假设我们有一个信用卡号。我们必须检查卡号是否有效。卡号具有某些属性 −
它将以 4、5 和 6 开头
它将是 16 位数字’ long
数字必须仅包含数字
它可以有四组数字,用 '-' 分隔
它不能使用任何其他分隔符,如空格或下划线
它不能有 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 不为空且 q 为空,则
- 返回 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 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

