Python生成随机验证码,大乐透号码
实例笔记之生成随机号码
扩展知识 - yield(生成器)
随机生成验证码
示例代码:
import random # 导入标准模块中的random
if __name__ == '__main__':
check_code = "" # 保存验证码的变量
for i in range(4): # 循环4次
index = random.randrange(0, 4) # 随机生成0~3中的一个数
if index != i and index+1 != i: # 从此开始就是随机生成一个字符或数字(不知道上面代码到底产生了几(因为随机),也不需要知道,反正结果能出4个字符验证码即可)
check_code += chr(random.randint(97, 122)) # 随机生成a~z中的一个小写字母
elif index+1 == i:
check_code += chr(random.randint(65, 90)) # 随机生成A~Z中的一个大写字母
else:
check_code += str(random.randint(1, 9)) # 随机生成1~9中的一个数字
print("验证码:", check_code) # 输出生成的验证码
执行结果:
验证码: xufz # 随机不一定是这个
以上是生成4位随机验证码示例代码,需要位数更多改一下数字即可。
生成大乐透号码
原始代码:
"""
输入注数生成大乐透号码
红球取值范围1-36,篮球1-12
"""
import random
class GreatLotto:
"""
需要一个生成次数count
"""
global result # 声明全局变量
result = []
def __init__(self, count):
self.count = count
def randoms(self):
"""
:return: 返回传入次数的随机彩票号码(返回的是一个整体列表)
"""
for i in range(self.count):
for j in range(7):
if j <= 4:
index1 = random.randrange(1, 36)
result.append(index1)
if j > 4:
index1 = random.randrange(1, 13)
result.append(index1)
return result # 返回生成结果
def start(self):
"""
:return: 根据传入的次数判断列表取值的开始数
"""
for l in range(self.count):
if l < 1:
two = l
else:
two = l * 7
yield two # yield是生成器,将每次循环生成的结果储存(如果使用了return会结束循环,导致只能执行一次)
def ends(self, rer):
"""根据传入的次数判断列表取值的结束数"""
for k in range((len(rer) + 1) // 7): # 小数不能循环我们用地板除
one = (k + 1) * 7
yield one # yield是生成器,将每次循环生成的结果储存(如果使用了return会结束循环,导致只能执行一次)
if __name__ == '__main__':
num = int(input("请输入需要生成的注数:"))
Great = GreatLotto(num) # 实例化GreatLotto 并将输入的次数传入
lists = Great.randoms() # 得到返回的生成结果
zips = zip(Great.start(), Great.ends(lists)) # 压缩两个函数 使for循环可以同时循环两个对象
for m, n in zips: # 遍历两个函数的生成器
print(lists[m:n])
执行结果:
请输入需要生成的注数:3
[6, 15, 9, 34, 9, 8, 8]
[17, 18, 6, 15, 6, 5, 2]
[9, 29, 23, 22, 32, 1, 8]
改进版本:
"""
输入注数生成大乐透号码
红球取值范围1-36,篮球1-12
"""
import random
class GreatLotto:
"""
需要一个生成次数count
"""
global result # 声明全局变量
result = []
def __init__(self, count):
self.count = count
def randoms(self):
"""
:return: 返回传入次数的随机彩票号码(返回的是一个整体列表)
"""
for i in range(self.count):
for j in range(7):
if j <= 4:
index1 = random.randrange(1, 36)
result.append(index1)
if j > 4:
index1 = random.randrange(1, 13)
result.append(index1)
return result # 返回生成结果
def start_end(self):
"""
:return: 根据传入的次数判断列表取值的开始数和结束数
"""
for k in range(self.count):
if k < 1:
start1 = k
else:
start1 = k * 7
end1 = start1 + 7
yield end1, start1 # yield是生成器,将每次循环生成的结果储存(如果使用了return会结束循环,导致只能执行一次)
if __name__ == '__main__':
try:
num = int(input("请输入需要生成的注数:"))
except ValueError:
print('输入的格式错误!!!')
num = int(input("请重新输入需要生成的注数:"))
Great = GreatLotto(num) # 实例化GreatLotto 并将输入的次数传入
lists = Great.randoms() # 得到返回的生成结果
for end, start in Great.start_end(): # 遍历两个函数的生成器
print(lists[start:end]) # 输出最终生成的结果
执行结果:
请输入需要生成的注数:3
[32, 27, 30, 2, 28, 10, 11]
[25, 20, 15, 11, 34, 3, 3]
[15, 11, 8, 15, 26, 7, 5]
Python生成随机验证码,大乐透号码的更多相关文章
- 08 python学习笔记-随机生成大乐透号码(八)
1 #产生大乐透号码 2 #前区 1-32,5 后区 1-12,2 3 #1.前区从1-32中级取5个,后区再从1-12里面取2个 4 #01 02 03 04 5 def dlt(): #生成随机大 ...
- python 写一个生成大乐透号码的程序
""" 写一个生成大乐透号码的程序 生成随机号码:大乐透分前区号码和后区号码, 前区号码是从01-35中无重复地取5个号码, 后区号码是从01-12中无重复地取2个号码, ...
- Python 生成随机验证码
Python生成随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 fro ...
- Python生成随机验证码
Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1.创建图片 from PIL import Image img = Image.new(m ...
- Python实现双色球和大乐透摇奖
实现代码: # code by kadycui # 模块引用 import random def select(): print('\n') print('请选择彩票种类') print('双色球输入 ...
- Python - 生成随机验证码的3种实现方式
生成6位随机验证码的3种实现方式如下: 1. 简单粗暴型:所有数字和字母都放入字符串: 2. 利用ascii编码的规律,遍历获取字符串和数字的字符串格式: 3. 引用string库. 方法1代码: i ...
- python模拟双色球大乐透生成算法
每天练习一段python代码,健康生活一辈子.晚上下班没事,打开电脑继续编写python代码!今天分享的一个是大家熟悉的双色球彩票的游戏,根据这个进行写的一个python算法,代码精简,肯定有bug, ...
- python—模拟生成双色球号和大乐透号
下边这个脚本,比较适合初级学习基本python语法用.但是,不精炼建议可参考https://www.cnblogs.com/Formulate0303/p/14031748.html的写法. 大乐透玩 ...
- python 获取大乐透中奖结果
实现思路: 1.通过urllib库爬取http://zx.500.com/dlt/页面,并过滤出信息 2.将自己的买的彩票的号与开奖号进行匹配,查询是否中奖 3.将中奖结果发生到自己邮箱 caipia ...
随机推荐
- .net+mvc,ueditor
.net+mvc的百度编辑器ueditor 一.下载百度编辑器:http://ueditor.baidu.com/website/download.html 选择.net版本 二.解压后在mvc项目中 ...
- Excepting a "Mapping" node but got ... Ingnore "Except mapping" in project
问题 配置端口出现以下问题 问题原因: 解析失败 解决方式: 先将把application.yml 改为 application.properties, 再将端口号文件改为如下格式 解决
- scrapy基本使用(二)
scrapy基本使用(二) 参考链接: http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html#id5 scrapy基本使用(一 ...
- RabbitMQ简单应用の轮训分发
MQ连接工厂还是之前的那个Connection package com.mmr.rabbitmq.util; import java.io.IOException; import com.rabbit ...
- 用Vue实现状态列表的操作涵盖所有的知识点
用Vue实现状态列表的操作涵盖所有的知识点
- Server-side activities have been updated. You need to restart SharePoint Designer to use the updated version of activities
一,环境: SharePoint Online Win10 + SharePoint Designer 2013 错误描述: 使用SPD3013打开SPO站点,然后编辑已有工作流(2013),报错: ...
- codeforces 38G - Queue splay伸展树
题目 https://codeforces.com/problemset/problem/38/G 题意: 一些人按顺序进入队列,每个人有两个属性,地位$A$和能力$C$ 每个人进入时都在队尾,并最多 ...
- 微信小程序-两个input叠加,多次点击字体变粗或闪动
问题描述: 当两个input叠加,多次点击input框, placeholder 字体变粗或input框闪动.如图: 代码: <!-- 最上层input-1 --> <input p ...
- datepicker 属性设置 以及方法和事件
DatePicker支持鼠标点选日期,同时还可以通过键盘控制选择: page up/down - 上一月.下一月 ctrl+page up/down - 上一年.下一年 ctrl+home - 当前月 ...
- Codeforces Educational Codeforces Round 57 题解
传送门 Div 2的比赛,前四题还有那么多人过,应该是SB题,就不讲了. 这场比赛一堆计数题,很舒服.(虽然我没打) E. The Top Scorer 其实这题也不难,不知道为什么这么少人过. 考虑 ...