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 相关文章推荐
matplotlib作图添加表格实例代码
Jan 23 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
Feb 15 Python
Python中按键来获取指定的值
Mar 02 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
python用for循环求和的方法总结
Jul 08 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
python中如何使用insert函数
Jan 09 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 Python
Python中的xlrd模块使用原理解析
May 21 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
如何开始收听短波广播
2021/03/01 无线电
PHP自定义函数格式化json数据示例
2016/09/14 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
Javascript typeof 用法
2008/12/28 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
JS功能代码集锦
2016/05/04 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
Python编写生成验证码的脚本的教程
2015/05/04 Python
对Python3中的input函数详解
2018/04/22 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
职高毕业生自我鉴定
2013/10/21 职场文书
学习十八大报告感言
2014/02/04 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
经典禁毒标语
2014/06/16 职场文书
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS