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实现冒泡,插入,选择排序简单实例
Aug 18 Python
实例讲解Python中函数的调用与定义
Mar 14 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 Python
python实现决策树ID3算法的示例代码
May 30 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
python三引号输出方法
Feb 27 Python
PageFactory设计模式基于python实现
Apr 14 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
python爬虫 requests-html的使用
Nov 30 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常用ODBC函数集(详细)
2013/06/24 PHP
php使用glob函数快速查询指定目录文件的方法
2014/11/15 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
python str与repr的区别
2013/03/23 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
详解python中sort排序使用
2019/03/23 Python
django foreignkey(外键)的实现
2019/07/29 Python
Python页面加载的等待方式总结
2021/02/28 Python
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
学习普通话的体会
2014/11/07 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书
nginx优化的六点方法
2021/03/31 Servers
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
python+opencv实现视频抽帧示例代码
2021/06/11 Python