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