python实现抽奖小程序


Posted in Python onApril 15, 2020

本文实例为大家分享了python实现抽奖小程序的具体代码,供大家参考,具体内容如下

设计一个抽奖服务 

背景:有x个奖品,要求在y天内发完;每天至少发放z个奖品;每天抽奖人数不定,事先会假设一个范围是m-n

举例:有100个奖品,要求5天内发完,每天至少发15个奖品;每天来抽奖的人估计是 2000-3000 人,希望奖品能够比较均匀,但随机的抽取出来。

接口要求:服务监听一个端口,测试程序不断连接,发送一个数字代表是第几天,比如第1-2000个请求发送1(模拟第一天来了2000人),第2001到5000请求发送2(模拟第二天来了3000人)... 服务返回 0 or 1 表示是否抽到奖品

client.py:设置初始化参数,模拟用户向server端发送数据

# -*- coding: utf-8 -*-
import socket
import random

address = ('127.0.0.1', 31500)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

x = int(input("奖品个数x:"))
y = int(input("发放天数y:"))
z = int(input("每天至少发放奖品个数:"))
m = int(input("最少人数m:"))
n = int(input("最多人数n:"))

data = '{"x":'+str(x)+',"y":+'+str(y)+',"z":'+str(z)+',"m":'+str(m)+',"n":'+str(n)+'}'
s.sendto(data.encode('utf-8'), address)

for day in range(y):
 num = random.randint(m, n)
 print("第",day+1,"天人数为",num)
 k=0
 for k in range(num):
 s.sendto(str(day+1).encode('utf-8'), address)
s.close()

server.py:服务端接收初始数据和每个用户发送的数据

# -*- coding: utf-8 -*-

import socket
import lottery

address = ('127.0.0.1', 31500)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(address)

list=[]

data, addr = s.recvfrom(2048)
data = data.decode('utf-8')
print ("received:", data, "from", addr)
dic=eval(data)
x=dic['x']
y=dic['y']
z=dic['z']
m=dic['m']
n=dic['n']

k=0
preday = 1
while True:
 k += 1
 day, addr = s.recvfrom(2048)
 if not day:
 print ("client has exist")
 break
 if preday != day:
 list.append(k-1)
 preday = day
 day = int(day.decode('utf-8'))
 x -= lottery.check(x,y,z,m,n,k,day,list)
s.close()

lottery.py:抽奖程序算法

#Filename:lottery.py

def check(x,y,z,m,n,k,day,list):

 #估计到来当天的人数和奖品的个数
 if day == 1 or day == y:
 e_x = z
 e_people = n
 elif day == y:
 e_x = x
 e_people = n
 else:
 e_x = x/(y+1-day)
 e_people = sum(list)/len(list)
 
 #中奖间隔
 length = int(e_people/e_x)

 lucky = 0
 if x>0 and k%length == 0 :
 #print(x,"第",k,"个中奖")
 lucky = 1

 print("第",k,"个--第",day,"天--是否中奖--",lucky)
 return lucky

源码下载:python实现抽奖小程序

想要学习更多关于抽奖功能的实现,请参考此专题:抽奖功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 解析html之BeautifulSoup
Jul 07 Python
使用Python获取Linux系统的各种信息
Jul 10 Python
python集合类型用法分析
Apr 08 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
Python深入06——python的内存管理详解
Dec 07 Python
python 查找字符串是否存在实例详解
Jan 20 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
python将unicode和str互相转化的实现
May 11 Python
Python  lambda匿名函数和三元运算符
Apr 19 Python
Python常见数据类型转换操作示例
May 08 #Python
Python数据类型之Number数字操作实例详解
May 08 #Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 #Python
Python数据类型之String字符串实例详解
May 08 #Python
Python数据类型之List列表实例详解
May 08 #Python
Python3使用TCP编写一个简易的文件下载器功能
May 08 #Python
详解Python的三种可变参数
May 08 #Python
You might like
无线电的诞生过程
2021/03/01 无线电
PHP新手上路(二)
2006/10/09 PHP
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
php中require和require_once的区别说明
2014/02/27 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
jquery中this的使用说明
2010/09/06 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
Vue.js实现简单动态数据处理
2017/02/13 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
2017/09/14 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
学习python可以干什么
2019/02/26 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
python hash每次调用结果不同的原因
2019/11/21 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
中间件分为哪几类
2012/03/14 面试题
AJAX都有哪些有点和缺点
2012/11/03 面试题
英语文学专业学生的自我评价
2013/10/31 职场文书
2014年大学生自我评价
2014/01/19 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
公务员考察材料
2014/12/23 职场文书
公司门卫岗位职责
2015/04/13 职场文书
电影圆明园观后感
2015/06/03 职场文书