开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[其他] 两种Python抽奖程序

 发表于 2023-11-5 19:07:25 来自手机|显示全部楼层|阅读模式 IP:浙江省
本帖最后由 用户名.txt 于 2023-11-5 19:14 编辑


源代码:
  1. import random
  2. AwardName=""
  3. prize=""
  4. WinnersNumber=0
  5. AwardNameList=[]
  6. PrizeList=[]
  7. WinnersNumberList=[]
  8. while AwardName!="q": #输入奖项名称、奖品以及中奖人数,直到输入奖项名称为“q”时停止
  9.     AwardName=input("请输入奖项名称:")
  10.     if AwardName=="q":
  11.         break
  12.     prize=input("请输入奖品:")
  13.     WinnersNumber=int(input("请输入中奖人数:"))
  14.     AwardNameList.append(AwardName)
  15.     PrizeList.append(prize)
  16.     WinnersNumberList.append(int(WinnersNumber))
  17. TotalWinnersNumber=0
  18. for WinnersNumber in WinnersNumberList: #获取中奖的总人数
  19.     TotalWinnersNumber+=WinnersNumber
  20. UserName=""
  21. UserList=[]
  22. while UserName!="q": #输入用户名,直到输入“q”时停止
  23.     UserName=input("请输入用户名:")
  24.     if UserName=="q":
  25.         break
  26.     UserList.append(UserName)
  27. UserNumber=len(UserList) #获取总人数
  28. WinnersList=[]
  29. for i in range(TotalWinnersNumber): #抽奖
  30.     n=random.randint(0, UserNumber-1)
  31.     while UserList[n] in WinnersList:
  32.         n=random.randint(0, UserNumber-1)
  33.     WinnersList.append(UserList[n])
  34. winners=""
  35. for AwardName,prize,WinnersNumber in zip(AwardNameList,PrizeList,WinnersNumberList): #输出结果
  36.     for i in range(WinnersNumber):
  37.         winners+=WinnersList[0]+" "
  38.         WinnersList.remove(WinnersList[0])
  39.     print(AwardName+":"+winners+","+"奖品:"+prize)
  40.     winners=""
复制代码

运行结果:
1.png


这个程序的思路来源于https://klpbbs.com/thread-112364-1-1.html
源代码:
  1. import random
  2. BonusPool=int(input("请输入奖池金额:"))
  3. UserName=""
  4. UserList=[]
  5. while UserName!="q": #输入用户名,直到输入“q”时停止
  6.     UserName=input("请输入用户名:")
  7.     if UserName=="q":
  8.         break
  9.     UserList.append(UserName)
  10. UserNumber=len(UserList) #获取总人数
  11. NewUserList=[]
  12. while len(NewUserList)!=UserNumber: #排序
  13.     n=random.randint(0,UserNumber-1)
  14.     while UserList[n] in NewUserList:
  15.         n=random.randint(0, UserNumber-1)
  16.     NewUserList.append(UserList[n])
  17. BonusList=[]
  18. n=0
  19. for i in range(UserNumber): #抽奖
  20.     n+=1
  21.     if BonusPool!=0:
  22.         if n!=UserNumber:
  23.             bonus=random.randint(1,BonusPool)
  24.             BonusList.append(bonus)
  25.             BonusPool-=bonus
  26.         else:
  27.             BonusList.append(BonusPool)
  28.     else:
  29.         BonusList.append(0)
  30. n=0
  31. for UserName,bonus in zip(NewUserList,BonusList): #输出结果
  32.     n+=1
  33.     print(str(n)+".",UserName,bonus)
复制代码

运行结果:
2.png

评分

参与人数 1铁粒 +30收起理由
 我是re*** + 30基础奖励

查看全部评分

苦力怕论坛,感谢有您~
 楼主|  发表于 2024-3-25 22:47:59 来自手机|显示全部楼层 IP:浙江省
评论复审中...编号:10460046
来自 3# 2024-3-25 22:47:59回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

头像被屏蔽
 发表于 2023-11-5 20:19:39|显示全部楼层 IP:浙江省
评论复审中...编号:9598321
2#2023-11-5 20:19:39收起回复
nifpc2023-11-7 11:57IP:浙江省
回复举报
感觉command_block更抽象
苦力怕论坛,感谢有您~
 发表于 2024-4-21 08:42:17|显示全部楼层 IP:广东省
评论复审中...编号:10475406
4#2024-4-21 08:42:17回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

| 由 木韩网络 提供支持 | GMT+8, 2026-2-3 06:12

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4