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中利用Pandas库处理大数据的简单介绍
Apr 07 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
Python正规则表达式学习指南
Aug 02 Python
python如何定义带参数的装饰器
Mar 20 Python
python基于物品协同过滤算法实现代码
May 31 Python
python实现飞机大战
Sep 11 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
在Python中使用Neo4j的方法
Mar 14 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
python清空命令行方式
Jan 13 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 Python
python爬虫用request库处理cookie的实例讲解
Feb 20 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的特殊设置
2006/10/09 PHP
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
JavaScript中对象的不同创建方法
2016/08/12 Javascript
js倒计时显示实例
2016/12/11 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
python3.x上post发送json数据
2018/03/04 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
零基础小白多久能学会python
2020/06/22 Python
python如何实现DES加密
2020/09/21 Python
车辆维修工自我评价怎么写
2013/09/20 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
不同意离婚答辩状
2015/05/22 职场文书