python 模拟贷款卡号生成规则过程解析


Posted in Python onAugust 30, 2019

前言

笔者在测试某web系统的过程中,需要用到“贷款卡号”,且此贷款卡号仅能使用一次,保存过后下一次无法再次使用相同的卡号。

遂决定依据它的生成规则,自己写一段代码来实现。

同时为了方便起见,贷款卡的前三位默认用数字来实现。

1. 生成规则如下:

贷款卡编码一共有16位,最后两位是校验位

整个贷款卡编码的规则如下:

前三位:分别为数字或者大写英文字母

第四位到第十四位:分别为数字

后两位的校验码为

前十四位乘以权重相加后除以97后的余数再加1后得到的数字,

如果此数字为个位数,前面还需要补一个零

前十四位编码对应的权重为1,3,5,7,11,2,13,1,1,17,19,97,23,29

如果某一位为字母,则需要将此字母转换为数字,A转为为10,B转为为11,以此类推。

2. python代码如下:

import random

power = [1,3,5,7,11,2,13,1,1,17,19,97,23,29] #权重
arr = []
sum = 0

#随机生成前14位并保存在列表arr中
for i in range(14):
  value = random.randint(0,9)
  arr.append(value)

#前十四位乘以权重相加
for j in range(14):
  value = arr[j] * power[j]
  sum = sum + value

#除以97后的余数再加1
last_two = sum % 97 + 1

#如果此数字为个位数,前面还需要补一个零
if last_two>10:
  shiwei = last_two // 10
  gewei = last_two % 10
  arr.append(shiwei)
  arr.append(gewei)
else:
  shiwei = 0
  gewei = last_two
  arr.append(shiwei)
  arr.append(gewei)

#输出贷款卡号
print("loanCardNo: ",end="")
for i in range(0,16):
  print(arr[i],end="")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python下os模块强大的重命名方法renames详解
Mar 07 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
python实现对csv文件的列的内容读取
Jul 04 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
Python多分支if语句的使用
Sep 03 Python
如何用Python绘制3D柱形图
Sep 16 Python
Python Tkinter实例——模拟掷骰子
Oct 24 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 #Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 #Python
python获取Linux发行版名称
Aug 30 #Python
python实现ip地址查询经纬度定位详解
Aug 30 #Python
Django 对IP访问频率进行限制的例子
Aug 30 #Python
关于Python3 类方法、静态方法新解
Aug 30 #Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 #Python
You might like
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
Python采集腾讯新闻实例
2014/07/10 Python
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
python中常用检测字符串相关函数汇总
2015/04/15 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
Python使用Pickle模块进行数据保存和读取的讲解
2019/04/09 Python
flask框架路由常用定义方式总结
2019/07/23 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
2020/10/19 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
编辑个人求职信范文
2013/09/21 职场文书
工程造价与管理专业应届生求职信
2013/11/23 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技