Python之路09-随机验证码&发红包

参考女神博客链接:https://www.cnblogs.com/Eva-J/articles/11266790.html?tdsourcetag=s_pcqq_aiomsg#_label6

随机验证码小白版本

# -*- coding: utf-8 -*-
# 2019/8/5 13:56
import random
# 小白版
yan=‘‘
for i in range(4):
    #current=random.randint(0,9) #生成0-9的随机数
    current=random.randrange(0,4) # 生成0-4的随机数,如果和i相等,随机添加字母或数字
    if current == i:
        tmp = chr(random.randint(65,90))
    else:
        tmp = random.randint(0,9)
    yan+=str(tmp)
print("生成的4位随机验证码为:", yan)

随机验证码女神版本

# -*- coding: utf-8 -*-
# 2019/8/5 13:56
import random
# 女神版
def verification_code():
    ‘‘‘生成随机验证码‘‘‘
    code = ‘‘  # 初始化验证码的值为空
    for i in range(4):  # 循环获取4个随机数,生成4位随机验证码
        num = random.randint(0, 9)  # 生成0-9的随机数
        alf = chr(random.randint(65, 90))  # 随机生成大小写字母,通过字母的ascii值获取
        tmp = random.choice([num, alf])  # 随机在数字和字母中获取一位字符
        # code = "".join([code, str(tmp)])  # 将随机获取的字符拼接
        code +=str(tmp)

    return code

yan = verification_code()
print("生成的4位随机验证码为:", yan)

随机验证码女神升级版本,可以自定义验证码的模式,可以是纯数字,或者是带大小写字母的

# -*- coding: utf-8 -*-
# 2019/8/5 13:56
import random

# 升级版
def code(n=4,alpha=True):
    ‘‘‘自定义版‘‘‘
    s = ‘‘
    for i in range(n):
        num = random.randint(0,9)
        if alpha:
            alpha_lower = chr(random.randint(97,122))
            alpha_upper = chr(random.randint(65,90))
            num = random.choice([num,alpha_lower,alpha_upper])
        s += str(num)
    return s
# 默认生成4位,带大小写的随机验证码
ret = code()
print(ret)
# 生成8位带数字大小写字母的随机验证码
ret = code(8)
print(ret)
# 生成4位随机数字验证码
ret = code(alpha=False)
print(ret)
# 生成8位随机数字验证码
ret = code(8,False)
print(ret)

随机验证码终极版本

# -*- coding: utf-8 -*-
# 2019/8/5 13:56
import random
import string
from random import choice

# 终极版
def Makepass(length=8, chars=string.ascii_letters+string.digits):
    return ‘‘.join([choice(chars) for i in range(length)])

ret = Makepass()
print(ret)
ret = Makepass(4)
print(ret)
ret = Makepass(4,chars=string.digits)
print(ret)

抢红包基础版本

# -*- coding: utf-8 -*-# 2019/8/9 10:22
‘‘‘
# 2.发红包 拼手气红包
# 200元 10个 每个人抢到的钱都是随机的
# 每一个人抢到多少钱的概率都平均
‘‘‘
import random

# 0-20000之间随机取n个不重复的整数
def send_money(money,n):
    lst = []
    money = money*100
    ret = random.sample(range(1,money),n-1)
    ret.sort()
    ret.insert(0,0)
    ret.append(money)
    for i in range(len(ret)-1):
        val = ret[i+1] - ret[i]
        val = val/100
        lst.append(val)
    return lst

print(send_money(100,5))

抢红包升级版本,利用生成器来节省内存使用。

# -*- coding: utf-8 -*-
# 2019/8/9 10:22
‘‘‘
# 2.发红包 拼手气红包
# 200元 10个 每个人抢到的钱都是随机的
# 每一个人抢到多少钱的概率都平均
‘‘‘
import random

def red_envelope(money=200,n=10): # money表示要发多少钱 ,n表示要发几个红包
    ‘‘‘抢红包‘‘‘
    money = money * 100 # 可以抢到分,将钱数乘以100,返回值时再除以100就能取到分了。
    line_list = random.sample(range(1,money),n-1) # sample不重复 的从1-199中随机取9个数,返回list。
    line_list.sort() # 将list从小到大排序
    line_list.insert(0,0) # 在list最前面插入0
    line_list.append(money) # 在list最后面加入200,list的长度为11,这样就能完整的在0-200区间获取10个红包了,list之间的值加起来刚好为200。
    for i in range(len(line_list)-1):
        red = line_list[i+1] - line_list[i] # 第二个点减去第一个点的值作为第一个红包,以此类推。
        red = red/100 # 再把分转换成元
        yield red # 利用生成器来节省内存使用
        # money = money - red*100
        # print(‘红包余额:‘,money/100)

if __name__ == ‘__main__‘:
    money=50
    n=10
    red = red_envelope(money,n)
    for i in range(n):
        print(‘第%s个红包%s元!‘% (i+1,red.__next__()))

    # res=list(red)
    # print(res)
    # print(sum(res))

原文地址:https://www.cnblogs.com/hulk-1029/p/11327031.html

时间: 2024-10-08 13:59:10

Python之路09-随机验证码&发红包的相关文章

python之路---09 初始函数 参数

二十七.初始函数 1.函数: 对代码块和功能的封装和定义 2.格式及语法 def  函数名()           #  定义 函数体 函数名()              #  调用 3.    return      返回None return "x"        返回值为   'x' return "x","y"     同时返回多个结果时,    返回的是元组 一遇到return 就结束函数  到达调用函数的位置 4.三目运算 c =

python的内置模块random随机模块方法详解以及使用案例(五位数随机验证码的实现)

1.random(self): Get the next random number in the range [0.0, 1.0) 取0到1直接的随机浮点数 import random print(random.random()) C:\python35\python3.exe D:/pyproject/day21模块/random随机模块.py 0.3105503800442595 2.randint(self, a, b) Return random integer in range [a

Django之路 - 实现登录随机验证码

登录验证码是每个网站登录时的基本标配,网上也有很多相应的文章, 但是从生成验证码到 应用到自己的网站上的全步骤,并没有看到很多, 为了节约大家的时间,我把整体步骤写下来, 即拿即用哈 1. 生成随机验证码  随机验证码代码 2. 如何应用到你的django项目中 整个验证码的流程如下 用户访问登录页面,你的后台程序在给用户返回登录页面时,同时生成了验证码图片 用户输入账户信息和验证码数字,提交表单 后台判断用户输入的验证码和你生成的图片信息是否一致,如果一致,就代表验证码是没有问题的 问题就卡在

Python 生成随机验证码

Python生成随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 from PIL import Image img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255)) # 在图片查看器中打开 # img.show()  # 保存在本地 with open('code.png','wb') as f

python学习--------随机验证码生成

在python中有一个模块random,可以生成随机数,下面就用它做一个简单的随机验证码 import random check_code = "" for i in range(6):     current_number = random.randrange(0,6)     if current_number != i:         temp = chr(random.randrange(65,90))     else:         temp = random.rand

python实战系列之生成随机验证码(03)

背景:在一些登陆网站中,输入用户名和密码之后,通常也需要输入验证码,验证码能够用于加密的salt,防止一些恶意攻击,如下通过python生成任意长度的随机验证码,验证码大写字母,小写字母和数字组成,其中小写字母由97至122的ASIIC码组成,大小字母则有65至90组成,通过chr()函数,将ASIIC码转换为字母,如下通过几行代码即可实现. 程序内容: #!/usr/bin/env python #_*_ coding:utf8 _*_ #author:Happy #来自Happy实验室,该程

python生成随机验证码

Python 生成随机验证码,需安装 PIL模块 安装: pip3 install pillow 基本使用 1,.创建图片 from PIL import Image img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255)) # 在图片查看器中打开 # img.show() # 保存在本地 with open('code.png','wb') as f: img.save(f,format='png') 2.创建画笔,用

python模块之PIL模块(生成随机验证码图片)

PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 首先需要安装一下pillow包 pip install pillow 然后就可以调用PIL里的类了 from PIL import Image from PIL import ImageFont from PIL import ImageDraw from PIL import ImageFilt

用Python编写简单的发红包程序和计算器原理

用Python编写简单的发红包程序: 第一种解法:数轴方法解决 import random def red_packet(money,num): money = money * 100 #将钱数转换成分为单位 ret = random.sample(range(1,money),num-1) #在最低钱数1分与总钱数之间生成人数减1个数作为数轴的节点 ret.sort() #对列表进行排序 ret.insert(0,0) ret.append(money) for i in range(len(