轮盘抽奖

文章目录

  • 题目描述
  • 研究思路
  • 代码区
  • 代码运行测试
  • 关键点或难点

题目描述

模拟轮盘抽奖游戏
轮盘分为三部分: 一等奖, 二等奖和三等奖;
轮盘转的时候是随机的,
如果范围在[0,0.08)之间,代表一等奖,
如果范围在[0.08,0.3)之间,代表2等奖,
如果范围在[0, 1.0)之间,代表3等奖,
模拟本次活动1000人参加, 模拟游戏时需要准备各等级奖品的数量。

研究思路

1 首先预先定义奖项及对应的数字区间。
2 模拟用户转轮盘,随机生成数字,判断其区间,找到区间对应的奖项等级。
3 最终目标为求解各奖项数量,那么每个奖项都需要将对应的数量存储并显示出,从这个角度思考,可重新定义一个空字典,在一千遍的循环过程中,将各奖项和对应的奖品数量存储到字典,最后输出即可。

代码区

import random
Reword_Dict={
   "一等奖":(0,0.08),
   "二等奖":(0.08,0.3),
   "三等奖":(0.3,1)
}
#随机单次轮盘抽奖对应的奖项等级
def one_rolutte():
   user_num = random.random()  ##随机生成一个0到1之间的浮点数
   for k,v in Reword_Dict.items():
       if v[0]<= user_num <=v[1]:
           return k

Reowrd_count = {}
for i in range(1000):
   once_result = one_rolutte()
   if once_result not in Reowrd_count:
       Reowrd_count[once_result]=1
   else:
       Reowrd_count[once_result]+=1
#输出最终结果
for k,v in Reowrd_count.items():
   print(k,v)

代码运行测试

轮盘抽奖_第1张图片

关键点或难点

此间不熟悉的点在于字典的遍历查找,可通过以下代码查找字典中的关键字及关键字对应的数字区间,并确定区间范围,以及对应的获奖级别,返回获奖级别。

for k,v in Reword_Dict.items():
	if v[0] <= user_num <=v[1]:
            return k

生成一个0到1之间的随机数,random.random()括号内不需要加任何数值或区间。

random.random( )

最后还需将新的字典中的key值和value值遍历输出。

你可能感兴趣的:(python,python)