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+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
用pycharm开发django项目示例代码
Oct 24 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
python如何解析配置文件并应用到项目中
Jun 27 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
python实时检测键盘输入函数的示例
Jul 17 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
python入门之井字棋小游戏
Mar 05 Python
python如何求100以内的素数
May 27 Python
python 5个顶级异步框架推荐
Sep 09 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中使用Oracle数据库(2)
2006/10/09 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
Linux编译升级php的详细方法
2013/11/04 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
2018/12/25 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
Python中使用ElementTree解析XML示例
2015/06/02 Python
详解python基础之while循环及if判断
2017/08/24 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
django ajax发送post请求的两种方法
2020/01/05 Python
python变量的作用域是什么
2020/05/26 Python
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
档案保密承诺书
2014/06/03 职场文书
元旦晚会活动总结
2014/07/09 职场文书
高考升学宴答谢词
2015/01/20 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
走近毛泽东观后感
2015/06/04 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
Python matplotlib绘制雷达图
2022/04/13 Python
MySQL去除密码登录告警的方法
2022/04/20 MySQL
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python