python小题目练习(十一)

题目:大乐透号码生成器

需求:使用Random模块模拟大乐透号码生成器,选号规则为:前区在1 ~ 35的范围内随机产生不重复 的5个号码,后区在1~ 12的范围内随机产生不重复的2个号码。效果如图8.18所示。

 

 代码展示:

"""
Author:mll
Content:大乐透号码生成器
Date:2020-11-26
Requirement:使用Random模块模拟大乐透号码生成器,选号规则为:前区在1 ~ 35的范围内随机产生不重复 的5个号码,
后区在1~ 12的范围内随机产生不重复的2个号码。效果如图8.18所示。
"""
import random


def happy_num():
print('大乐透号码生成器')
random_num = int(input('请输入要生成的大乐透号码注数:'))
for row in range(random_num):
ran_list = [] # 定义数组来存放数据
before_num = random.sample(range(1, 35), 5) # 每次遍历生成前面5个随机不同的数字,是数组
after_num = random.sample(range(1, 12), 2) # 每次遍历生成后面2个随机不同的数字,是数组
ran_list.append(before_num) # 把生成beform_num,after_num加入到定义的数组中
ran_list.append(after_num)
for index0, item0 in enumerate(ran_list[0]): # 遍历每次生成的ran_list下标为0的数组
if item0 < 10:
if index0 == 4:
print('0' + str(item0), end='\t\t\t')
else:
print('0' + str(item0), end='\t')
else:
if index0 == 4:
print(str(item0), end='\t\t\t')
else:
print(str(item0), end='\t')

for index1, item1 in enumerate(ran_list[1]): # 遍历每次生成的ran_list下标为1的数组

if item1 < 10:
if index1 == 1:
print('0' + str(item1))
else:
print('0' + str(item1), end='\t')
else:
if index1 == 1:
print(str(item1))
else:
print(str(item1), end='\t')


happy_num() # 方法调用

运行结果展示:

 

总结:random.sample()方法可以生成随机不重复的数

 

posted on 2020-11-26 17:02  不迷路的小羔羊  阅读(910)  评论(0)    收藏  举报

导航