Python例题:双色球和大乐透随机选号问题
import random
def generate(ball_max, ball_num):
"""选择一组随机的球
:param ball_max: 球的最大值
:param ball_num: 球的数量
:return: 保存一组球的列表
"""
balls = [i for i in range(1, ball_max + 1)]
selected_balls = random.sample(balls, ball_num)
selected_balls.sort()
return selected_balls
def make_big_lottery():
"""生成大乐透的号码"""
return generate(35, 5) + generate(12, 2)
def make_two_colors():
"""生成双色球的号码"""
return generate(33, 6) + generate(16, 1)
def display(balls):
"""
显示一组彩票号码
:param balls: 装彩票号码对应的球的列表
"""
for ball in balls:
print(f'{ball:0>2d}', end=' ')
print()
n = int(input('机选几注: '))
print('双色球: ')
for _ in range(n):
display(make_two_colors())
print('大乐透: ')
for _ in range(n):
display(make_big_lottery())
运行结果:
机选几注: 5 双色球: 09 10 11 14 20 33 04 04 07 08 09 10 29 09 04 07 10 16 27 28 06 12 13 18 22 26 28 06 02 04 06 20 22 31 15 大乐透: 08 14 16 32 35 05 12 02 07 15 18 24 04 08 01 02 05 15 19 04 12 01 22 30 31 33 06 12 08 12 13 24 28 05 08
该程序实现的是机选大乐透和双色球的注数问题,当年指定输入多少注,机器会随机生成你想要的注数,是对函数具有一定知识才能写出,当然你也可以用循环写出,知识重复的位置很多而且程序受限也很大,而函数只需要改变相应的参数即可适应新的需求,可用性很高。
|