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实现从web抓取文档的方法
Sep 26 Python
在Python中使用M2Crypto模块实现AES加密的教程
Apr 08 Python
python实现获取Ip归属地等信息
Aug 27 Python
django使用图片延时加载引起后台404错误
Apr 18 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
Django admin实现图书管理系统菜鸟级教程完整实例
Dec 12 Python
浅析Python3爬虫登录模拟
Feb 07 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
python3 动态模块导入与全局变量使用实例
Dec 22 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
Python使用BeautifulSoup4修改网页内容
May 20 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
微信小程序 支付后台java实现实例
2017/05/09 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
javascript实现画板功能
2020/04/12 Javascript
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Python入门之后再看点什么好?
2018/03/05 Python
python主要用于哪些方向
2020/07/05 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
为什么要做架构设计
2015/07/08 面试题
公司综合部的成员自我评价分享
2013/11/05 职场文书
会计专业毕业生推荐信
2013/11/05 职场文书
女娲补天教学反思
2014/02/05 职场文书
化验室岗位职责
2015/02/14 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
Java基础-封装和继承
2021/07/02 Java/Android
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis
MYSQL如何查看操作日志详解
2022/05/30 MySQL