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编写一个模仿CPU工作的程序
Apr 16 Python
Python中的map()函数和reduce()函数的用法
Apr 27 Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 Python
Python实现求数列和的方法示例
Jan 12 Python
python实现图片筛选程序
Oct 24 Python
Python Django的安装配置教程图文详解
Jul 17 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
python删除某个目录文件夹的方法
May 26 Python
python实现最短路径的实例方法
Jul 19 Python
Python实现Appium端口检测与释放的实现
Dec 31 Python
python数字图像处理:图像简单滤波
Jun 28 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递归算法的详细示例分析
2013/02/19 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
appium+python adb常用命令分享
2020/03/06 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
体育系毕业生求职自荐信
2014/04/16 职场文书
啤酒节策划方案
2014/05/28 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
2014年防汛工作总结
2014/12/08 职场文书
茶花女读书笔记
2015/06/29 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
Mysql中常用的join连接方式
2022/05/11 MySQL