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实现定制交互式命令行的方法
Jul 03 Python
深入讲解Python中的迭代器和生成器
Oct 26 Python
用Python写一个无界面的2048小游戏
May 24 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
使用python爬取抖音视频列表信息
Jul 15 Python
Django CBV类的用法详解
Jul 26 Python
python实现布隆过滤器及原理解析
Dec 08 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
基于python 取余问题(%)详解
Jun 03 Python
Python类super()及私有属性原理解析
Jun 15 Python
Python使用xpath实现图片爬取
Sep 16 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
Jan 27 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
模仿OSO的论坛(五)
2006/10/09 PHP
PHP 危险函数全解析
2009/09/09 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
python基础教程之循环介绍
2014/08/29 Python
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
python中os模块详解
2016/10/14 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
python3 实现调用串口功能
2019/12/26 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
共产党员承诺书
2014/03/25 职场文书
小学生读书活动总结
2014/06/30 职场文书
酒会邀请函
2015/01/31 职场文书
党员个人总结范文
2015/02/14 职场文书
放牛班的春天观后感
2015/06/01 职场文书
话题作文之自信作文
2019/11/15 职场文书
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers