python 模拟贷款卡号生成规则过程解析
前言
笔者在测试某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 库是 pymouse.pykeyboard 安装时直接pip安装的,pip install PyUserInput 安装不成功的可以参照http://www.lfd.uci.edu/~gohlke/pythonlibs/这个地址,内容很全 实现了一个最简单的输入密码,enter进入的登录过程 如果想遍历,可以使用itertools 包,很有用,具体用法这里不介绍了. · 鼠标点击 有m.click(x, y, butt
-
python并发编程多进程 模拟抢票实现过程
抢票是并发执行 多个进程可以访问同一个文件 多个进程共享同一文件,我们可以把文件当数据库,用多个进程模拟多个人执行抢票任务 db.txt {"count": 1} 并发运行,效率高,但竞争写同一文件,数据写入错乱,只有一张票,都卖成功给了10个人 #文件db.txt的内容为:{"count":1} #注意一定要用双引号,不然json无法识别 from multiprocessing import Process import time import json cla
-
python3模拟实现xshell远程执行liunx命令的方法
依赖包:pip install paramiko 源码demo: from time import * import paramiko # 定义一个类,表示一台远端linux主机 class Linux(object): # 通过IP, 用户名,密码,超时时间初始化一个远程Linux主机 def __init__(self, ip, username, password, timeout=30): self.ip = ip self.username = username self.passwo
-
在python中使用requests 模拟浏览器发送请求数据的方法
如下所示: import requests url='http://####' proxy={'http':'http://####:80'} headers={ "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Accept-Lang
-
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
简介 上一篇讲解完模拟器的安装.配置好以后,就好比我们手机已经买好,并且系统已经做好了,就差我们用数据线和电脑连接开始实战了,这篇宏哥就带着小伙伴们和童鞋们趁热打铁,讲解和分享一下如何连接模拟器(电脑版的虚拟手机),然后再安装一款APP-淘宝为例. 一.appium+pycharm+连接夜神模拟器并启动淘宝APP(推荐) 1.首先打开pycharm并写好代码,这里以淘宝APK作为测试Demo,淘宝APK我是放在电脑桌面(或者放置同代码同个目录下).如下图所示 其中|:driver = webdr
-
Python3模拟curl发送post请求操作示例
本文实例讲述了Python3模拟curl发送post请求操作.分享给大家供大家参考,具体如下: 后端给的接口样式: curl "http://65.33.44.43:509/pre/update" -H "Content-Type: text/json" -d '{"TYPE":"PRE-FILTER_UPDATE", "DATA":[{"SN":"1E3006CEBFE00&
-
Python模拟简单电梯调度算法示例
本文实例讲述了Python模拟简单电梯调度算法.分享给大家供大家参考,具体如下: 经常在公司坐电梯,由于楼层较高,是双联装的电梯,但是经常等电梯很久,经常有人骂写电梯调度算法的.回来闲来无事,自己尝试写了一个简单的. 场景很简单,每一层电梯口只有一个按钮,不区分上下,当有人按下这个键后,电梯会过来停在此层,这个人可以进去,并选择自己想去的层.电梯的调度策略也很简单,在一次向上的过程中,如果有人在下面按了键,电梯并不直接向下,而是运行到此次向上的最顶层,然后再下次向下运行的过程中去服务这个请求.
-
python 模拟贷款卡号生成规则过程解析
前言 笔者在测试某web系统的过程中,需要用到"贷款卡号",且此贷款卡号仅能使用一次,保存过后下一次无法再次使用相同的卡号. 遂决定依据它的生成规则,自己写一段代码来实现. 同时为了方便起见,贷款卡的前三位默认用数字来实现. 1. 生成规则如下: 贷款卡编码一共有16位,最后两位是校验位 整个贷款卡编码的规则如下: 前三位:分别为数字或者大写英文字母 第四位到第十四位:分别为数字 后两位的校验码为 前十四位乘以权重相加后除以97后的余数再加1后得到的数字, 如果此数字为个位数,前面还需
-
Python读取Excel数据并生成图表过程解析
一.需求背景 自己一直在做一个周基金定投模拟,每周需要添加一行数据,并生成图表.以前一直是用Excel实现的.但数据行多后,图表大小调整总是不太方便,一般只能通过缩放比例解决. 二.需求实现目标 通过Python程序读取Excel文件中的数据,生成图表,最好将生成图表生成至浏览器页面,后期数据多之后,也能自动缩放,而不会出现显示不全问题. 三.需求实现代码 # 调用本地echarts.min.js 文件 from pyecharts.globals import CurrentConfig Cu
-
python模拟键盘输入 切换键盘布局过程解析
PostMessage() def keyHwnd(hwndEx, char): """ 向指定控件输入值 :param hwndEx: 控件句柄 :param char: 字符串 :return: True or Flase """ try: for _ in char: print('key:%s ascii:%d' % (_, ord(_))) win32api.PostMessage(hwndEx, win32con.WM_CHAR, o
-
python计算机视觉opencv卡号识别示例详解
目录 一.模板预处理 1.将模板设置为二值图 2.检测模板的轮廓 3.对模板轮廓排序,并将数字和轮廓一一对应,以字典存储 4.备注 二.图片预处理 1.初始化卷积核 2.图片预处理第一部分 3.图像预处理第二部分 三.轮廓处理 1.大轮廓过滤 2.小轮廓分割 模板图片如下: 需识别的图片如下: 一.模板预处理 1.将模板设置为二值图 2.检测模板的轮廓 3.对模板轮廓排序,并将数字和轮廓一一对应,以字典存储 排序的函数如下: 排序并存储: 4.备注 ①每一个数字对应的是二值图截出来的那个数字图的
-
Python FTP文件定时自动下载实现过程解析
这篇文章主要介绍了Python FTP文件定时自动下载实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.需求: 某数据公司每日15:00~17:00之间,在其FTP发布当日数据供下载,我方需及时下载当日数据至指定本地目录. 二.分析: 1.需实现FTP登陆.查询.下载功能: 解答:使用内置的ftplib模块中FTP类: 2.需判断文件是否下载: 解答:使用os模块中path.exists方法: 3.需判断在指定时间段内才执行下载任
-
python实现迭代法求方程组的根过程解析
这篇文章主要介绍了python实现迭代法求方程组的根过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 有方程组如下: 迭代法求解x,python代码如下: import numpy as np import matplotlib.pyplot as plt A = np.array([[8, -3, 2], [4, 11, -1], [6, 3, 12]]) b = np.array([[20, 33, 36]]) # 方法一:消元法求解
-
Python enumerate函数遍历数据对象组合过程解析
这篇文章主要介绍了Python enumerate函数遍历数据对象组合过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. Python 2.3. 以上版本可用,2.6 添加 start 参数. enumerate(sequence, [start=0]) # sequence 是一个序
-
Python pygame绘制文字制作滚动文字过程解析
这篇文章主要介绍了Python pygame绘制文字制作滚动文字过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件. 字体绘制基本分为以下几个步骤: 初始化字体模块 pygame.init() 创建一个字体对象 可以从文件或者系统内字体选取 pygame.font.SysFont('幼圆',50) 绘制文本对象. a.render("测试字体",True,(
-
JS获取表格视图所选行号的ids过程解析
这篇文章主要介绍了JS获取表格视图所选行号的ids过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 实例化数组 遍历所选行push到数组中 将数组join转换为以,分割的字符串 /*获取指定id的datagrid的表格视图的选择的ids*/ function getDataGridSelectRowIDS(id){ var ids = []; var rows = $('#'+id).datagrid('getSelections');
-
Python TestSuite生成测试报告过程解析
简介:为每一个测试用例添加说明,那么将会使报告更加易读懂,工作中汇报数据的技巧 u"test_one方法" HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML的 测试报告,无法通过pip安装. 首先要下 HTMLTestRunner.py 文件,将下载的文件放入-\python\Lib目录下 (或者同个路径) 注意点: python2和python3,语法不一样,导致HTMLTestRunner在python3不兼容 解决办
随机推荐
- 精通 JavaScript中的正则表达式手机整理 推荐
- Vue.js中数据绑定的语法教程
- JS动态获取当前时间,并写到特定的区域
- GetPaing 函数之asp采集函数中用到的获取分页的代码
- Android开发笔记之Android中数据的存储方式(一)
- Android实现网络图片浏览功能
- Linux下ZendOptimizer的安装与配置方法
- 如何编写适合FireFox的对话框?
- 详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
- sql2005创建远程登录帐户的sql语句
- php XMLWriter类的简单示例代码(RSS输出)
- 将多选框选中时打勾的颜色
- FLASHAction基础之Movie Clip的控制
- Centos 6.5 服务器优化配置备忘(一些基础优化和安全设置)
- 用typedef定义类型的总结分析
- SpringMVC源码解读之 HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化
- Windows 2003中200K上传限制解决
- Python中对象的引用与复制代码示例
- C语言利用结构体数组实现学生成绩管理系统
- JavaScript函数式编程(Functional Programming)声明式与命令式实例分析