怎么用python写一个抽奖程序,是抽取图片或视频 如何用python实现随机抽取

\u600e\u4e48\u6837\u7528python\u505a\u4e2a\u7a0b\u5e8f\uff01\u8981\u4ece\u5217\u8868\u4e2d\u62bd\u53d6\u968f\u673a\u53d6

import random
lis = ['%03d'%x for x in range(1,501)]
res = random.sample(lis,50)
for i,item in enumerate(res):
....print("%d :%s"%(i+1,item))

\u628a. \u6362\u6210\u7f29\u8fdb

\u7269\u4fe1\u606f\u3001\u7edf\u8ba1\u3001\u7f51\u9875\u5236\u4f5c\u3001\u8ba1\u7b97\u7b49\u591a\u4e2a\u9886\u57df\u90fd\u4f53\u73b0\u51fa\u4e86\u5f3a\u5927\u7684\u529f\u80fd\u3002python\u548c\u5176\u4ed6\u811a\u672c\u8bed\u8a00\u5982java\u3001R\u3001Perl \u4e00\u6837\uff0c\u90fd\u53ef\u4ee5\u76f4\u63a5\u5728\u547d\u4ee4\u884c\u91cc\u8fd0\u884c\u811a\u672c\u7a0b\u5e8f\u3002\u5de5\u5177/\u539f\u6599
python\uff1bCMD\u547d\u4ee4\u884c\uff1bwindows\u64cd\u4f5c\u7cfb\u7edf
\u65b9\u6cd5/\u6b65\u9aa4
1\u3001\u9996\u5148\u4e0b\u8f7d\u5b89\u88c5python\uff0c\u5efa\u8bae\u5b89\u88c52.7\u7248\u672c\u4ee5\u4e0a\uff0c3.0\u7248\u672c\u4ee5\u4e0b\uff0c\u7531\u4e8e3.0\u7248\u672c\u4ee5\u4e0a\u4e0d\u5411\u4e0b\u517c\u5bb9\uff0c\u4f53\u9a8c\u8f83\u5dee\u3002

2\u3001\u6253\u5f00\u6587\u672c\u7f16\u8f91\u5668\uff0c\u63a8\u8350editplus\uff0cnotepad\u7b49\uff0c\u5c06\u6587\u4ef6\u4fdd\u5b58\u6210 .py\u683c\u5f0f\uff0ceditplus\u548cnotepad\u652f\u6301\u8bc6\u522bpython\u8bed\u6cd5\u3002
\u811a\u672c\u7b2c\u4e00\u884c\u4e00\u5b9a\u8981\u5199\u4e0a #!usr/bin/python
\u8868\u793a\u8be5\u811a\u672c\u6587\u4ef6\u662f\u53ef\u6267\u884cpython\u811a\u672c
\u5982\u679cpython\u76ee\u5f55\u4e0d\u5728usr/bin\u76ee\u5f55\u4e0b\uff0c\u5219\u66ff\u6362\u6210\u5f53\u524dpython\u6267\u884c\u7a0b\u5e8f\u7684\u76ee\u5f55\u3002
3\u3001\u7f16\u5199\u5b8c\u811a\u672c\u4e4b\u540e\u6ce8\u610f\u8c03\u8bd5\u3001\u53ef\u4ee5\u76f4\u63a5\u7528editplus\u8c03\u8bd5\u3002\u8c03\u8bd5\u65b9\u6cd5\u53ef\u81ea\u884c\u767e\u5ea6\u3002\u811a\u672c\u5199\u5b8c\u4e4b\u540e\uff0c\u6253\u5f00CMD\u547d\u4ee4\u884c\uff0c\u524d\u63d0\u662fpython \u5df2\u7ecf\u88ab\u52a0\u5165\u5230\u73af\u5883\u53d8\u91cf\u4e2d\uff0c\u5982\u679c\u6ca1\u6709\u52a0\u5165\u5230\u73af\u5883\u53d8\u91cf\uff0c\u8bf7\u767e\u5ea6

4\u3001\u5728CMD\u547d\u4ee4\u884c\u4e2d\uff0c\u8f93\u5165 \u201cpython\u201d + \u201c\u7a7a\u683c\u201d\uff0c\u5373 \u201dpython \u201c\uff1b\u5c06\u5df2\u7ecf\u5199\u597d\u7684\u811a\u672c\u6587\u4ef6\u62d6\u62fd\u5230\u5f53\u524d\u5149\u6807\u4f4d\u7f6e\uff0c\u7136\u540e\u6572\u56de\u8f66\u8fd0\u884c\u5373\u53ef\u3002

16年年会抽奖网上有人对公司的抽奖结果又偏见,于是全员进行了抽奖代码的review,好像是爱奇艺公司的,下面用python来实现一个抽奖程序。
主要功能有
1.从一个csv文件中读入所有员工工号
2.将这些工号初始到一个列表中
3.用random模块下的choice函数来随机选择列表中的一个工号
4.抽到的奖项的工号要从列表中进行删除,以免再次抽到
初级版
这个比较简单,缺少定制性,如没法设置一等奖有几名,二等奖有几名
import csv#创建一个员工列表emplist = []#用with自动关闭文件with open('c://emps.csv') as f:
empf = csv.reader(f) for emp in empf:
emplist.append(emp)
print("进行一等奖抽奖,共有一名")import random#利用random模块的chice函数来从列表中随机选取一个元素e1 = random.choice(emplist)#将中奖的员工从列表中剔除emplist.remove(e1)
print('一等奖得主的号码是 %s' % e1)
print('进行三个二等奖的号码抽奖')
e2_1 = random.choice(emplist)
emplist.remove(e2_1)
e2_2 = random.choice(emplist)
emplist.remove(e2_2)
e2_3 = random.choice(emplist)
emplist.remove(e2_3)
print('获得3个二等奖是 %s %s %s',(e2_1,e2_2,e2_3))#下面依次类推可以设置三等奖的抽奖123456789101112131415161718192021222324

改进版
上面的那个初级版,假如要设置个三等奖一百名那么将要重新维护几百行代码,下面用比较高级点的办法实现.
我们考虑用面向对象来实现,设计一个抽奖类,类中包含一个属性(号码来源),一个方法:产生所有抽奖层次指定个数的抽奖号码。
用到如下知识点:
1. csv模块部分函数用法
2. sys模块读取输入
3. random模块函数choice函数用法
4. 列表和字典元素的添加、删除
6. for循环中range用法
7. 类和面向对象
8. 字符打印,print中的计算
9.open中with
#!/usr/bin/python#coding=utf-8import csvimport sysimport random
reload(sys)
sys.setdefaultencoding('utf8')#coding=utf-8print("开始进行抽奖")#定义个抽奖类,功能有输入抽奖级别和个数,打印出每个级别的抽奖员工号码class Choujiang:
#定义scv文件路径
def __init__(self,filepath):
self.empfile = filepath def creat_num(self):
emplist = [] with open(self.empfile) as f:
empf = csv.reader(f) for emp in empf:
emplist.append(emp)
print('共有%s 人参与抽奖' % len(emplist))
levels = int(input('抽奖分几个层次,请输入:')) #定义一个字典
level_dict = {} for i in range(0,levels):
print('请输入当前获奖层次 %s 对应的奖品个数' % ( i + 1))
str_level_dict_key = sys.stdin.readline()
int_level_dict_key = int(str_level_dict_key)
level_dict[i] = int_level_dict_key #循环完成后抽奖层次字典构造完毕
#进行抽奖开始
print('抽奖字典设置为: %s' % level_dict) for i in range(0,len(level_dict)):
winers = [] #产生当前抽奖层次i对应的抽奖个数
for j in range(0,int(level_dict[i])): #利用random模块中的choice函数从列表中随机产生一个
winer = random.choice(emplist)
winers.append(winer)
emplist.remove(winer)
print('抽奖层次 %s 下产出的获奖人员有:' % (i + 1 ))
print(winers)#类功能定义完毕,开始初始化并使用if __name__ == '__main__':
peoples = Choujiang('c://emps.csv')
peoples.creat_num()1234567891011121314151617181920212223242526272829303132333435363738394041424344454647

该段程序在python 2.6 以上及 3中均可以运行,运行结果如下图:
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.>>> ================================ RESTART ================================>>> 开始进行抽奖
共有24790 人参与抽奖
抽奖分几个层次,请输入:2请输入当前获奖层次 1 对应的奖品个数1请输入当前获奖层次 2 对应的奖品个数3抽奖字典设置为: {0: 1, 1: 3}
抽奖层次 1 下产出的获奖人员有:
[['张三19826']]
抽奖层次 2 下产出的获奖人员有:
[['张三18670'], ['张三23235'], ['张三15705']]>>> 1234567891011121314151617

这个问题要钱解决

主要功能有
1.从一个csv文件中读入所有员工工号
2.将这些工号初始到一个列表中
3.用random模块下的choice函数来随机选择列表中的一个工号
4.抽到的奖项的工号要从列表中进行删除,以免再次抽到
初级版
这个比较简单,缺少定制性,如没法设置一等奖有几名,二等奖有几名
import csv#创建一个员工列表emplist = []#用with自动关闭文件with open('c://emps.csv') as f:
empf = csv.reader(f) for emp in empf:
emplist.append(emp)
print("进行一等奖抽奖,共有一名")import random#利用random模块的chice函数来从列表中随机选取一个元素e1 = random.choice(emplist)#将中奖的员工从列表中剔除emplist.remove(e1)
print('一等奖得主的号码是 %s' % e1)
print('进行三个二等奖的号码抽奖')
e2_1 = random.choice(emplist)
emplist.remove(e2_1)
e2_2 = random.choice(emplist)
emplist.remove(e2_2)
e2_3 = random.choice(emplist)
emplist.remove(e2_3)
print('获得3个二等奖是 %s %s %s',(e2_1,e2_2,e2_3))#下面依次类推可以设置三等奖的抽奖123456789101112131415161718192021222324

改进版
上面的那个初级版,假如要设置个三等奖一百名那么将要重新维护几百行代码,下面用比较高级点的办法实现.
我们考虑用面向对象来实现,设计一个抽奖类,类中包含一个属性(号码来源),一个方法:产生所有抽奖层次指定个数的抽奖号码。
用到如下知识点:
1. csv模块部分函数用法
2. sys模块读取输入
3. random模块函数choice函数用法
4. 列表和字典元素的添加、删除
6. for循环中range用法
7. 类和面向对象
8. 字符打印,print中的计算
9.open中with
#!/usr/bin/python#coding=utf-8import csvimport sysimport random
reload(sys)
sys.setdefaultencoding('utf8')#coding=utf-8print("开始进行抽奖")#定义个抽奖类,功能有输入抽奖级别和个数,打印出每个级别的抽奖员工号码class Choujiang:
#定义scv文件路径
def __init__(self,filepath):
self.empfile = filepath def creat_num(self):
emplist = [] with open(self.empfile) as f:
empf = csv.reader(f) for emp in empf:
emplist.append(emp)
print('共有%s 人参与抽奖' % len(emplist))
levels = int(input('抽奖分几个层次,请输入:')) #定义一个字典
level_dict = {} for i in range(0,levels):
print('请输入当前获奖层次 %s 对应的奖品个数' % ( i + 1))
str_level_dict_key = sys.stdin.readline()
int_level_dict_key = int(str_level_dict_key)
level_dict[i] = int_level_dict_key #循环完成后抽奖层次字典构造完毕
#进行抽奖开始
print('抽奖字典设置为: %s' % level_dict) for i in range(0,len(level_dict)):
winers = [] #产生当前抽奖层次i对应的抽奖个数
for j in range(0,int(level_dict[i])): #利用random模块中的choice函数从列表中随机产生一个
winer = random.choice(emplist)
winers.append(winer)
emplist.remove(winer)
print('抽奖层次 %s 下产出的获奖人员有:' % (i + 1 ))
print(winers)#类功能定义完毕,开始初始化并使用if __name__ == '__main__':
peoples = Choujiang('c://emps.csv')
peoples.creat_num()1234567891011121314151617181920212223242526272829303132333435363738394041424344454647

该段程序在python 2.6 以上及 3中均可以运行,运行结果如下图:
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.>>> ================================ RESTART ================================>>> 开始进行抽奖
共有24790 人参与抽奖
抽奖分几个层次,请输入:2请输入当前获奖层次 1 对应的奖品个数1请输入当前获奖层次 2 对应的奖品个数3抽奖字典设置为: {0: 1, 1: 3}
抽奖层次 1 下产出的获奖人员有:
[['张三19826']]
抽奖层次 2 下产出的获奖人员有:
[['张三18670'], ['张三23235'], ['张三15705']]>>> 1234567891011121314151617

  • 璇峰府蹇鐢≒ython缂栧啓涓涓绋嬪簭
    绛旓細l=[]while 1:n = raw_input('name:');if (n == 'Q'):break;s = int(raw_input('score:'));l.append((n, s));l.sort(cmp=lambda x,y: cmp(x[1], y[1]))print("name\tscore")for x in l:print("%s\t%d" % x)
  • 璇烽棶鐢╬ython鍒朵綔涓涓绋嬪簭,浣垮緱浣犺緭鍏ユ煇涓涓暟瀛梐,渚夸骇鐢熶竴涓猘琛宎鍒楃殑...
    绛旓細浠g爜涓紝棣栧厛浣跨敤input鍑芥暟璁╃敤鎴疯緭鍏涓涓鏁存暟锛屽苟灏嗗叾杞崲涓烘暣鍨嬪悗璧嬪肩粰鍙橀噺a銆傜劧鍚庝娇鐢╬rint鍑芥暟杈撳嚭a+1鐨勭粨鏋溿傚厛浠庨敭鐩樿緭鍏5锛屽氨鏄粰鍙橀噺a璧嬪5锛屽啀杈撳叆6锛屽氨鏄粰鍙橀噺b璧嬪6銆傚垽鏂璦鏄惁澶т簬b锛屽鏋滄垚绔嬶紝杈撳嚭a锛屼笉鎴愮珛杈撳嚭b銆備笉鑳戒娇鐢ㄤ繚鐣欏瓧锛堝凡琚Python璇█绯荤粺鏈韩璧嬩簣鐗瑰畾鎰忎箟鐨勫崟璇嶏級銆侾ython...
  • python濡備綍鐢绫荤殑鏂规硶璁剧疆涓涓鍓垁鐭冲ご甯冪殑绋嬪簭,涓夊眬涓よ儨鍒?
    绛旓細1--鐭冲ご 2--鍓垁 3--甯 鐒跺悗浣跨敤input锛岃緭鍏1~3涔嬮棿鐨勬暣鏁帮紝濮戜笖鍙玦nputnum 鐢变簬杈撳叆鐨勬槸瀛楃涓诧紝閭d箞鎴戜滑int(inputnum)杩欐牱鎴戜滑寰楀埌浜涓涓鏁存暟inputnum 浣跨敤if-elif璇彞 鍒ゆ柇a鍜宨nputnum鐨勫叧绯 鍋氬嚭鐩稿簲鐨勫洖绛 鐒跺悗绗簩姝 瀹氫箟鍙橀噺flagA 鍒ゆ柇绋嬪簭璧㈢殑娆℃暟锛屽湪涓婇潰鐨刬f璇彞涓啓涓奻lagA鐨勮嚜澧 ...
  • python闅忔満浜х敓20涓0-1鐨勬暟,鍐欏叆鏂囦欢,瑕佹眰姣忚浜斾釜鏁
    绛旓細鍙互浣跨敤Python鍐呯疆鐨剅andom妯″潡鏉ョ敓鎴0-1涔嬮棿鐨勯殢鏈烘暟锛屽苟浣跨敤鏂囦欢鎿嶄綔灏嗗畠浠啓鍏ユ枃浠朵腑銆備笅闈㈡槸涓绉嶅彲鑳界殑瀹炵幇鏂瑰紡锛歩mport random 鐢熸垚20涓殢鏈烘暟锛屾瘡琛屼簲涓暟 with open('random_numbers.txt', 'w') as f:for i in range(20):if i % 5 == 0:f.write('\n') # 鎹㈣ f.write(str(...
  • 鐢≒ython鍐欎竴涓绠鍗曠殑灏忔父鎴
    绛旓細鐩镐俊澶у閮界帺杩囦縿缃楁柉鏂瑰潡鍚э紝搴旇鏄皬鏃跺欑殑鍥炲繂鍚э紝浣嗘槸鎯充笉鎯充簡瑙d竴涓嬭繖涓▼搴忔槸鎬庝箞鍐鍑烘潵鐨勫憿锛岃嚜宸卞啓鍑烘潵鐨勫簲璇ョ帺璧锋潵鏇存湁鎰熻鍚э紒鎰熻杩樻槸铔ソ鐜╁惂锛佹帴涓嬫潵锛屾垜灏卞垎浜竴涓嬭繖涓父鎴忕殑婧愮爜杩囩▼鍟婏紒鍏鐢╬ython鍒涘缓涓涓py鏂囦欢 瀹氫箟杩欐绋嬪簭鎵闇瑕佺殑绫 鐒跺悗鍐欏嚭瀹冩墍闇瑕佺殑妯″潡 鐢昏儗鏅浘 鐢荤綉鏍肩嚎 鐢...
  • #鎶姮灏忔墜瀛Python# 鐢ㄥ埆浜轰唬鐮佸畬鎴愭垜鐨勫伐浣,鎰夊揩鎽搁奔銆岄檮婧愮爜銆峗鐧...
    绛旓細瀵煎叆绫荤殑鏃跺欎篃鍙互搴旂敤鍒悕锛屽悓鏍蜂娇鐢 as 璇硶銆傚涔犲埌杩欓噷浣犲妯″潡鏄粈涔堬紝妯″潡鎬庝箞鐢宸茬粡鏈変簡涓涓熀鏈鐭ワ紝鎺ヤ笅鏉ュ厛涓嶇敤鑷繁鍐欎竴涓鐗瑰埆鐗涚殑妯″潡锛屾垜浠厛鎶婁竴浜涘父瑙佺殑妯″潡搴旂敤璧锋潵銆傞氳繃闅忔満鏁版ā鍧楀彲浠ヨ幏鍙栧埌涓涓暟瀛楋紝瀹冪殑浣跨敤鍦烘櫙闈炲父骞匡紝渚嬪 娓告垙 鐩稿叧寮鍙戙侀獙璇佺爜鐩稿叧銆鎶藉鐩稿叧锛屽涔犱簡闅忔満...
  • 濡備綍鐢≒ython璇█缂栧啓涓涓绋嬪簭?
    绛旓細鍙互浣跨敤Python鐨寰幆璇彞鍜屾潯浠惰鍙ユ潵瀹炵幇杩欎釜绋嬪簭銆傚叿浣撲唬鐮佸涓嬶細result = [] # 鐢ㄤ簬瀛樻斁绗﹀悎鏉′欢鐨勬暟 for i in range(1, 201): # 寰幆閬嶅巻1鍒200涔嬮棿鐨勬墍鏈夋暟 if i % 19 == 0: # 鍒ゆ柇鏄惁鑳借19鏁撮櫎 result.append(str(i)) # 灏嗙鍚堟潯浠剁殑鏁拌浆鎹㈡垚瀛楃涓叉坊鍔犲埌result鍒楄〃...
  • 姹傚姪涓涓猵ython绋搴,鐢╬ython璁$畻1-2+3-4...+99 鏈夎繍琛岀粨鏋滄埅鍥,璋...
    绛旓細coding=utf-8 py2.7 print reduce(lambda x,y:x+[y,-y][y%2==0],range(1,100))
  • 鎬庝箞鐢╬ython缂栦互涓嬬▼搴,姹傞珮鎵嬪府鎴戠紪涓嚭鏉,璋㈣阿浜!
    绛旓細num=raw_input("which multiplication table would you like?\n")num=int(num)print("Here's your table:")for i in range(1,10): print("%d x %d = %d"%(num,i,num*i))for 寰幆绋嬪簭 num=raw_input("which multiplication table would you like?\n")num=int(num)print("Here's...
  • python浣跨敤while寰幆鍐欎竴涓閫夎绋嬪簭,棣栧厛鎵撳嵃鍑轰竴涓夎鍗曞垪琛,鏍规嵁瀹 ...
    绛旓細import java.util.Scanner;import javax.xml.soap.Node;public class Zhidao { public static void main(String args[]) { Scanner sc = new Scanner(System.in);System.out.println("璇疯緭鍏ラ夋嫨鐨勮绋嬪彿");int num = sc.nextInt();switch(num) { case 1:System.out.println("鎮ㄩ夋嫨鐨勬槸鏁板...
  • 扩展阅读:如何用python制作抽奖 ... python写自动化游戏脚本 ... python制作游戏挂机脚本 ... 上交版常用python语句答案 ... python抽奖简单小程序 ... python抽签小程序 ... python概率随机抽奖 ... pycharm怎么写抽奖代码 ... 用python编写一个抽奖程序 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网