robotframework环境搭建二十九:自动生成银行账户并校验Luhm码

问题:自动生成银行账户

一、根据不同银行生成不同账户

1. 思路

  1. 自动生成银行账户
  2. 校验Luhm码

2. 关键字:Card No Generator

在这里插入图片描述

二、pyhon 源代码

# coding=utf-8

# Author: Allan
# Version: 2.0

import time
import random

def card_No_generator(bankType=None):
    # 随机银行卡号
    switch = {
    "CCB": "621700",
    "CMBC": "621691",
    "ABC": "622827",
    "BCM": "622262",
    "CMB": "621486",
    "SPDB": "622521",
    "GDB": "622568",
    "HXB": "622632",
    "PAB": "622298",
    "CITIC": "622696",
    "ICBC": "620058",
    "BOC": "620061",
    "CIB": "622908",
    "CEB": "622660",
    "PSBC": "621799"}
    cardNo = ''
    for i in range(200):
        length = 0
        s=[]
        if bankType == None:
            bankType = random.choice(switch.keys())
        if(bankType == 'ICBC' or bankType == 'CCB' or bankType == 'ABC' or bankType == 'PSBC' or bankType == 'GDB' or bankType == 'BOC' or bankType == 'BCM'):
            length = 13
        else:
            length = 10
        for i in range(length):
            s.append(str(random.randint(0,9)))
        cardNo = switch[bankType] + ''.join(s)
        if luhm_check(cardNo):
            print('Card NO: ' + cardNo)
            return bankType, cardNo

def luhm_check(cardNo):
    # Luhm校验规则:16位银行卡号(19位通用):
    # 1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(18),位于奇数位号上的数字乘以 2。
    # 2.将奇位乘积的个十位全部相加,再加上所有偶数位上的数字。
    # 3.将加法和加上校验位能被 10 整除。
    lastNum = int(cardNo[-1])
    oddNums = map(lambda x: int(x)*2, cardNo[1::2])
    evenNums = map(lambda x: int(x)*1, cardNo[2::2])
    sumTotal = sum(oddNums + evenNums)
    check= lambda x: 10 if x%10==0 else x%10
    k = check(sumTotal)
    luhm= 10-k
    if lastNum == luhm:
        return True
    else:
        return False

if __name__ == '__main__':
    card_No_generator()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章介绍docker的前世今生,了 解docker的实现原理,以Django项目为例,教大家如何编写最佳的Dockerfile实现构业务镜像的制作。通过本章的学习,大家会知道docker的概念及基本操作,并学会构建自己的业务镜像,并通过抓包的方式掌握Docker最常用的bridge网络模式的通信。第二章本章学习kubernetes的架构及工作流程,重点介绍如本章学习kubernetes的架构及工作流程,重点介绍如断的滚动更新,通过服务发现来实现集群内部的服务间访问,并通过ingress- -nginx实现外部使用域名访问集群内部的服务。同时介绍基于EFK如何搭建Kubernetes集群的日志收集系统。学完本章,我们的Django demo项目已经可以运行在k8s集群中,同时我们可以使用域名进行服务的访问。第三章本章基于k8s集群部署gitlab、sonarQube、 Jenkins等工具,并把上述工具集成到Jenkins中,以Django项目为例,通过多分支流水线及Jenkinsfle实现项目代提交到不同的仓库分支,实现自动代扫描、单元测试、docker容器构建、k8s服务的自动部署。第四章由于公司内部项目众多,大量的项目使用同一套流程做CICD,那么势必会存在大量的重复代,因此本章主要通过使用groovy实现Jenkins的sharedL ibrary的开发,以提取项目在CICD实践过程中的公共逻辑,提供一系列的流程的接口供公司内各项目调用,开发完成后,还是以Django的demo项目为例,进行Jenkinsfle的改造,最后仅需通过简单的Jenkinsfle的配置,即可优雅的完成CICD流程的整个过程,此方式已在大型企业内部落地应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值