问题描述
我无法获得for循环来迭代文本文件并基于用户输入的子字符串返回定界结果。我不断获得整个发行人ID网络,而不仅仅是特定的ID网络。
如何优化此方法以返回正确的结果? 请输入您的卡号:5558397375275489 Luhn验证:真实 信用卡发行人:AmericanExpress 信用卡发行人:ChinaT-Union 信用卡发行人:银联 信用卡发行人:Dankort 信用卡发行商:DinersClub-CarteBlanche 信用卡发行商:DinersClub-International 信用卡发行人:DinersClub-USA&Canada 信用卡发行人:发现 信用卡发行人:InstaPayment 信用卡发行人:JapanCreditBureau(JCB) 信用卡发行人:Maestro 信用卡发行人:万事达卡 信用卡发行人:RuPay 信用卡发行人:UATP 信用卡发行商:Verve 信用卡发行人:Visa 信用卡发行商:ViSAElectron
是当前输出。 5558397375275489 是用户输入的示例 计划的输出将是 请输入信用卡号: 5558397375275489 信用卡卡号:5558397375275489 信用卡类型:万事达卡 Luhn验证:真实。
这是附件的txt文件:
ChinaUnionPay;16,19;62,88
Dankort;16;5019
DinersClub-CarteBlanche;14;300,301,302,303,304,305
DinersClub-International;14;36,38,39
DinersClub-USA&Canada;16;54
discover;16,19;6011,622126-622925,644,645,646,647,648,649,65
InstaPayment;16;637,638,639
JapanCreditBureau(JCB);16;19,3528-3589
Maestro;16,19;5018,5020,5038,5893,6304,6759,6761,6762,6763
MasterCard;16;51,52,53,54,55,222100-272099
RuPay;16;60,6521,6522
UATP;15;1
Verve;16;506099-506198,650002-650027
Visa;13,16,19;4
ViSAElectron;16;4026,417500,4405,4508,4844,4913,4917
#!/usr/bin/env python3
import csv
import utils
def user_choice(card_verify,card_number):
result_one = utils.is_valid(card_verify)
if result_one == False:
print("Luhn Verification: N/A")
else:
result = utils.luhn(card_number)
state = "Authentic" if result else "Unauthentic"
print('Luhn Verification: ' + state)
def file_iterator(card_issuer,card_verify,length):
cards = []
with open('credit_card_types.ssv','r') as card_file:
for lines in card_file.readlines():
issuer_id,card_len,id_num = lines.strip().split(';')
cards.append({'Issuer' : issuer_id,'Length' : card_len,'Id_num' : id_num})
id_number = id_num.replace(',',' ')
card_length = card_len.replace(',' ')
for issuer_id in card_verify:
if card_issuer in id_number:
print("Credit Card Issuer: " + issuer_id)
break
def main():
card_number = list(input("Please Enter Your Card Number: ").strip())
card_verify = ''.join(card_number)
length = len(card_verify)
print(length)
card_issuer = str(''.join(card_verify[0:6]))
user_choice(card_verify,card_number)
file_iterator(card_issuer,length)
if __name__ == '__main__':
main()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)