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字符串中查找子串小技巧
Apr 10 Python
python实现人脸识别代码
Nov 08 Python
Python返回数组/List长度的实例
Jun 23 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
详解python 注释、变量、类型
Aug 10 Python
使用python实现简单五子棋游戏
Jun 18 Python
Python 变量的创建过程详解
Sep 02 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 Python
python实现邮件循环自动发件功能
Sep 11 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 Python
python matlab库简单用法讲解
Dec 31 Python
python实现A*寻路算法
Jun 13 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
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
php获取网页内容方法总结
2008/12/04 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
python判断字符串是否纯数字的方法
2014/11/19 Python
Python中在脚本中引用其他文件函数的实现方法
2016/06/23 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
利用指针变量实现队列的入队操作
2012/04/07 面试题
消防应急演练方案
2014/02/12 职场文书
高一学生评语大全
2014/04/25 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
硕士学位申请报告
2015/05/15 职场文书
婚庆主持词大全
2015/06/30 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android