Python Cookbook-3.15 检查信用卡校验

news/2025/3/14 12:48:55/

任务

检查信用卡校验。

解决方案

Luhn mod 10是信用卡业检验和的标准。它不是 Python 内建的算法,不过我们可以很容易地实现这个算法:

python">def cardluhnChecksumIsValid(card_number):
'''通过 lunn mod-10 校验和算法检查信用卡号'''sum = 0num_digits = len(card_number)oddeven = num_digits & 1for count in range(num_digits):digit = int(card_number[count])if not((count & 1) ^ oddeven):digit = digit*2if digit > 9:digit = digit-9sum = sum + digit
return(sum & 10) ==0

讨论

本节代码的原型来自于Zope 中一个已经不再使用的电子商务程序。

这个程序完成的简单验证工作,可以让你避免提交一个错误的卡号给信用卡提供商,从而节省时间和金钱,因为没人愿意验证一-个错误的信用卡号。本节代码的应用面很广,因为很多政府的身份认证号码也使用了Luhn(modulus10)算法。

一个完整的信用卡验证的套件,见http://david.theresistance.net/files/creditValidation.py。如果喜欢一行代码解决问题,而不是简洁清晰的编码风格,那么我认为,(a)你可能选错了书(PerlCookbook是那种会让你满意的类型),(b)同时,在想换本书之前,瞧瞧下面这种写法能否让你高兴:

python">checksum = lambda a:( 10-sum([int(y)*[7,3,1][x%3] for x,y in enumerate(str(a)[::-1])])%10)%10

http://www.ppmy.cn/news/1578772.html

相关文章

初识云计算

1.传统IT的劣势 讯速整升的互联风普及率给企业带来了大最的流量,用户以及数据,为了能够匹配企业高速发展的进度,就需要不断地买购传统IT设备,时间一长,传统IT设备的弊端就逐渐显示出来: ① 采购周期…

openai agents SDK原理详解

文章目录 openai agents开发新套件:Responses API和Agents SDKResponses API⁠ agents SDKGuardrails: 智能体安全护栏输入防护栏输出防护栏 Tracing:智能体行为观测追踪tracespanprocessors 使用示例:创建辅导孩子写作业的多个智能体教师 RE…

MongoDB副本集部署完整教程

一般而言,副本集主要成员有三个:主节点,副本节点,仲裁节点 按照官方推荐方案,我们搭建一个三成员的副本集,这个副本集由一个主结点和两个副本结点组成。 这里采用三台虚拟机进行部署:node1(主节…

ue5 动画重定向匹配动画不合适怎么办?mixamo网站一键绑定

ue导出骨骼网格体 fbx模型导入maya 删除骨骼 选中模型 导出模型 打开米萨摩网站 https://www.mixamo.com/#/?page1&query&typeMotion%2CMotionPackupload模型 next 拖动圆圈 点击next 导出模型 导入ue 导入的时候选择动画 时间为带动画的时间 不创建材质

阶乘之和(信息学奥赛一本通-2033)

【题目描述】 输入n,计算S1!2!3!…n!的末6位(不含前导0)。n≤106, n!表示前n个正整数之积。 【输入】 输入n。 【输出】 如题述,之和。 【输入样例】 10 【输出样例】 37913 【提示】 【数据范围】 对于所有数据,1≤n≤999999。 【…

利用axios库的爬虫程序如何使用HTTP

在 JavaScript 中,axios 是一个非常流行的 HTTP 客户端库,它可以用来发送各种 HTTP 请求(如 GET, POST 等),并处理响应。我们可以使用 axios 来编写一个简单的爬虫程序,该程序抓取网页内容并提取需要的信息…

如何通过自动化测试提升DevOps效率?

引言 在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益严苛。DevOps通过持续集成(CI)、持续交付(CD)和持续监控(CM)等实践,将开发、测试与运维深度整合,显著缩…

java Long[] ids转为List<Long> ids

方法 1&#xff1a;使用 Arrays.asList import java.util.Arrays; import java.util.List;public class Main {public static void main(String[] args) {Long[] ids {1L, 2L, 3L, 4L};List<Long> list Arrays.asList(ids);System.out.println(list); // 输出: } } 注…