大乐透号码生成器python_Python生成随机验证码,大乐透号码

本文介绍了如何使用Python生成随机四位验证码以及大乐透彩票号码。通过示例代码详细展示了生成过程,包括随机生成小写字母、大写字母和数字,以及大乐透号码的生成逻辑。
摘要由CSDN通过智能技术生成

实例笔记之生成随机号码

扩展知识 - 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]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值