目的

最近和朋友们想玩圣诞互换礼物,但是没找到可以抽奖的小程序,所以我决定自己写一个。
游戏规则:参加游戏的人需要随机抽取一个幸运儿送一个礼物,但是注意不要抽到自己,并且不要重复抽同一个人。

思路

准备两个列表:抽奖人员列表和被抽人员列表。
依次遍历每个抽奖人员,在剩下的被抽人员列表里随机抽取一个幸运儿。抽取后将该幸运儿从被抽人员列表中剔除,然后进行下一轮抽取。

代码

participants = [ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']  #参与抽奖的人def lottery(participants):"""抽奖:param participants: 参与抽奖的人:return:"""the_rest = participants.copy()  # 没被抽中的人,注意要用复制函数,不能直接赋值,不然会后续删除the_rest的元素时也会删除participants的元素choose_one = {}    # 存每个人抽中的人num = len(participants)  # 参加抽奖的人数for i in range(num):participant = participants[i]   # 本次抽奖者lucky_person = ''   # 被抽中的人# 从没被抽中的人(the_rest)中抽取一位幸运儿while lucky_person == '' or lucky_person == participant:    # 确保不会选到自己lucky_person = random.choice(the_rest)# 将本次抽奖结果存入choose_onechoose_one[participant] = lucky_person# 将被抽中的人从没被抽中的人(the_rest)里删除the_rest.remove(lucky_person)return choose_oneprint('送礼物的:幸运儿')
print('-------------')
result = lottery(participants)
for item in result.items():print("{} : {}".format(item[0], item[1]))

结果

用python写一个圣诞互换礼物的抽奖小程序相关推荐

  1. 用python写一个日语五十音记忆小程序qaq

    最近在B站自学日语~可能被英语洗脑太久了,感觉五十音图特别别扭超级难背qaq 朋友推荐了几个背单词软件都没有背五十音的,对零基础不太友好 自己写了一个感觉还挺好使 程序很简单,主要是没有日语输入法,要 ...

  2. python编写数据库连接工具_详解使用Python写一个向数据库填充数据的小工具(推荐)...

    一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库 ...

  3. 写一个音乐播放器的微信小程序

    要创建一个音乐播放器的微信小程序,您需要熟悉微信小程序的开发环境和语言(如 JavaScript 和 WXML/WXSS). 具体来说,您需要做以下几件事: 设计音乐播放器的用户界面,并使用 WXML ...

  4. 手把手教你写一个没有服务器的颜值打分小程序,可直接上线

    小程序现在可以说非常火爆了,流量入口非常多.尤其是出了流量主功能以后,普通开发者也能在自己的个人小程序里植入官方广告来获取收入.程序员想赚点外快再合适不过了.今天教大家写一个颜值打分的小程序,利用现成 ...

  5. 关于如何使用Python写一个开机自动认证校园网的脚本程序

    有的学校有那个无感认证,有的学校没有,这个时候就可以自己动手丰衣足食,我学校就是只有手机才有无感认证,PC端是没有的,所以我就自己写了一个.(没有编程经验也可以,照着我的写就行) 首先,你需要安装好P ...

  6. 用python写一个简答的英文文章分析程序

    前言 本人是软件工程在校学生,萌新一枚,写此程序为了练习字符串处理函数.程序有bug,例如没法把文章中的数字处理掉,希望多多包涵,有什么改进的方法可以留言. 一.代码内容 filehandle=ope ...

  7. 用python画满天星花朵_如何使用python做一个可以画一朵花的小程序?

    这篇文章可以交给你怎么在windows或macOS与python3环境下做出一个可以根据你的自定义设置画出一朵花的程序. 在开始写正式的逻辑代码之前,我们要先导入一些库: from tkinter i ...

  8. 用uni-app写一个简单的豆瓣电影微信小程序

    如题,这个项目是用 uni-app 写的,只有一个列表页,没有详情页. 截图 首页 选择标签 搜索列表 封装api ./api/api // 定义基本URL const BASE_URL = 'htt ...

  9. python写背单词软件_python背单词小程序

    import random as t #创建单词序列 words=("easy","difficult","answer","co ...

最新文章

  1. xshell登录VMware虚拟机的初始设置
  2. scala简明教程:偏函数、高阶函数、Future异步编程、隐式转换
  3. Python Django 多对多表设计批量插入方法示例
  4. 1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project
  5. HTML页面代码移动端和pc兼容,pc端网站如何实现移动端适配?
  6. java 分布式编译_linux分布式编译distcc和ccache的部署
  7. python递归函数详解-讲解Python中的递归函数
  8. 计算机考研地域重要还是学校,考研选学校,城市更重要还是专业更重要?
  9. 金山发布数字办公平台
  10. 问卷星全自动填写脚本浅尝
  11. 北京二手房上周成交环比增六成 个别业主涨价出售
  12. 2、图片亮度,对比度,饱和度,明度调整 transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)
  13. 用diiv实现多个方块居中嵌套--padding
  14. sqlserver 包含关系
  15. 几本关于斯多葛主义 (Stoicism) 的书
  16. 触摸按键PCB设计要点
  17. 论文翻译:2019_Bandwidth Extension On Raw Audio Via Generative Adversarial Networks
  18. 计算机类研究生双证,想要报考计算机专业来攻读双证在职研究生最终是不是可以获得双证...
  19. 高德地图——切换路线的不同实现(驾车、公交、骑行)
  20. Gitkraken收费问题解决

热门文章

  1. python基于广度优先(BFS)的迪杰斯特拉(Dijkstra)算法 求最短路径
  2. Eclipse中properties配置文件的中文乱码
  3. 信小程序参数二维码的8大使用场景
  4. Apache开源顶级项目Ambari搭建HDP大数据平台
  5. 富士施乐248b粉盒清零_打印机DocuPrintM228B如何清零
  6. Marvolo Gaunt's Ring ---CodeForces - 855B(思维题)
  7. 计算几何(立体几何)基础篇
  8. 云原生|kubernetes|集群网络优化之启用ipvs
  9. 相邻位数字差值的绝对值不能超过77_微信小程序直播怎么用和挣钱?4位内测CEO答5大关键问题...
  10. 0043-使用Grabcut函数完成前景与背景的分割