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()方法可以生成随机不重复的数
浙公网安备 33010602011771号