reward: _随机抽奖小程序">
当前位置:   article > 正文

随机抽奖程序(每天一个python小项目)_随机抽奖小程序

随机抽奖小程序
import random
num = []                                # 用于存放抽奖码
print("欢迎来到抽奖小程序!")

while True:
    usernum = input("请输入参与抽奖的人数:")
    reward = input("请输入中奖人数:")
    if usernum.isdigit() == True and reward.isdigit() == True and usernum > reward:
        break
    else:
        print("输入非法,请重新输入!")
        continue
usernum = int(usernum)
reward = int(reward)

# 将抽奖码添加到num中
for i in range(usernum):
    prizenum = input("请输入第" + str(i + 1) + "个抽奖码:")
    num.append(prizenum)

resultList = []                         # 用于存放随机数结果
# 生成随机数的递归数,参数counter表示当前准备要生成的第几个有效随机数
def generateRand(counter):
    tempInt = random.randint(0, usernum-1)     # 生成一个范围内的临时随机数
    if(counter <= reward):                   # 先看随机数的总个数是不是够了,如果不够
        if(tempInt not in resultList):  # 再检查当前已经生成的临时随机数是不是已经存在
            resultList.append(tempInt)  # 如果不存在,则将其追加到结果resultList中
            counter += 1                # 然后将表示有效结果的个数加1
        generateRand(counter)           # 不管上面的if是否成立,都要递归。
generateRand(1)                    # 调用递归函数,并给当前要生成的有效随机数的个序号置为1

prize = []                              # 用于存放中奖号码
# 将中奖号码添加到结果prize中
for j in range(reward):
    prize.append(num[resultList[j]])
print("\n中奖用户:")           # 输出中奖结果
for k in range(reward):
    print(prize[k], end="\n")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

运行结果:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/198911
推荐阅读
相关标签
  

闽ICP备14008679号