谁帮忙写个抽奖程序吧

2012-06-26 17:37:23 +08:00
 Eyon
就是从 n 个名字中随机抽出 x 个人中奖...
4543 次点击
所在节点    Python
16 条回复
c
2012-06-26 18:05:58 +08:00
>>> import random
>>> names = 'abcdefg'
>>> print random.sample(names, 2)
['c', 'b']
nigelvon
2012-06-26 18:10:14 +08:00
python不熟,给你个思路吧,名字放到一个数组里。
随机抽一个元素,然后从数组中删掉,直到抽到想要的数量为止。
Eyon
2012-06-26 18:11:37 +08:00
@c names 怎么分成若干个字符串... 比如,张三 lisi 王二麻子 zhaosi
Eyon
2012-06-26 18:12:47 +08:00
@c 最好是names能读取一个 names.txt 里面的list
ayanamist
2012-06-26 18:16:45 +08:00
曾经在年初的时候给年夜饭写过个类似的
https://gist.github.com/1627198
支持因为某个号码不在而取消某个号码重新抽奖。
c
2012-06-26 18:20:13 +08:00
@Eyon ayanamist 这个html版本用起来应该可以满足您的需求了
clowwindy
2012-06-26 18:20:38 +08:00
import random
with open('a.txt') as f:
print random.sample(f.read().split(' '), 2)
Eyon
2012-06-26 18:22:05 +08:00
@c 可是不需要二等奖和三等奖...您告诉我下怎么读取names.txt 的list就是了,谢
c
2012-06-26 18:25:34 +08:00
https://gist.github.com/2994883

名字放 names.txt 里, 输入 python r.py names.txt 2
Eyon
2012-06-26 18:27:32 +08:00
@clowwindy

with open('/Users/eyon/names.txt') as f:
... print random.sample(f.read().split(' '), 2)
File "<stdin>", line 2
print random.sample(f.read().split(' '), 2)
^
IndentationError: expected an indented block
aa88kk
2012-06-26 18:30:17 +08:00
在线生成, 一行一个名字

http://textmechanic.com/Random-Line-Picker.html
Eyon
2012-06-26 18:31:31 +08:00
@c
@aa88kk

大榭,结贴
clowwindy
2012-06-26 18:51:17 +08:00
@Eyon 第三行前面加两个空格,空格被 V2EX 吃掉了。
loading
2012-06-26 19:36:17 +08:00
我以前用的是网页,用js写的,能比较美观!
winix
2012-06-26 19:53:03 +08:00
http://winix.name/lotto/ 去年公司年会时用JS写的,去掉了背景和名单。

1、空格键开始,再次按空格抽一个奖
2、z键暂停(防止误按)
3、名单单独放在一个js文件里,第一列是手机号或者工号什么的,第二列是姓名
4、支持作弊,目前是将特殊号码的16进制写在index.html里(一眼看不出来是谁),抽奖时按对应的数字键,从1开始
5、窗口误关闭时会提醒
karma
2012-06-26 20:22:48 +08:00
需要设计一等奖永远抽不中的功能么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/40593

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX