当前位置: 首页 > news >正文

医院网站建设细节科技公司排名

医院网站建设细节,科技公司排名,广宁县住房建设局网站,中国互联网上网服务行业协会前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者#xff1a; 极客挖掘机PS#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun分析需求我们先整理下思…前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者 极客挖掘机PS如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun分析需求我们先整理下思路目标是什么 目标是要写一个抽奖程序那么抽奖程序的核心是什么 当然是如何判断一个人中奖了。那么如何判断一个人中奖呢 是不是可以通过随机函数来操作呢中奖方法一步一步来我们先通过随机函数来判断是否中奖。代码是不是可以先写成下面这样import random# 判断中奖函数def lottery(): flag random.randint(0, 9) if flag 2: return True else: return False首先我们获取 0 ~ 9 之间的随机正整数(这里不讨论 random 是不是很随机从狭义上来讲我们可以认为它是随机的)如果中奖率为 20% 的话我们可以认为小于 2 的数字为中奖其余的为没有中奖。然后中奖后返回 True 没有中奖返回 False 。我们加一个入口测试函数测试一下上面的代码是否能正常运行并且中奖率是否能维持在大约 20 % 左右。if __name__ __main__: # 中奖次数 a 0 # 没有中奖次数 b 0 for i in range(1000000) : if (lottery()): a 1 else: b 1 print(共计中奖, a, 未中奖, b)执行结果共计中奖 200145 未中奖 799855上面的测试总共循环了 1 百万次大约执行需要 2 ~ 3 秒左右速度还是蛮快的。可以看到中奖结果确实接近 20% 左右。动态中奖率难道到这里就结束了么当然不可能这里只是刚刚开了个头。如果这时老板说你这个概率不能调整啊需要让中奖率可以动态调整的活动刚开始的时候中奖率要高随着时间的推移中奖率要降下来。这时候咋整傻眼了吧。既然中奖率要可调整那么我们中奖率就不能定死在程序中了这个中奖率需要有一个地方去做存储在每次做随机的时候将这个中奖率取出来。简单易行的方法就是将这个中奖率放在数据库中或者缓存服务中这个根据实际业务场景来定。一般是根据预估访问压力的大小来进行技术选型如果压力不是特别大那么放在数据库中也是可以的如果并发会比较高的话建议还是放在缓存中。我们来写一个从数据库获取中奖概率的方法(为了展示直观小编这里直接使用 Mysql 数据库用作数据存储)先看下数据库的数据很简单的设计了一张表里面有意义的字段有两个一个用作中奖率的分子部分一个用作中奖率的分母部分。分母部分最好要设置成 100 、 1000 、 10000 这种这样计算中奖率会比较好计算。def get_lottery_rate(): conn pymysql.connect(hostlocalhost, userroot, passwordpassword, databasetest, charsetutf8mb4) try: sql SELECT fenzi, fenmu FROM rate cursor conn.cursor() cursor.execute(sql) result cursor.fetchone() return result except Exception as ex: print(ex) finally: conn.close()运行这个方法测试结果如下(10, 100)可以看到我们获得了一个元组里面的内容就是我们从数据库取出来的分子和分母。我们将前面的抽奖的那个方法改一下改成从数据库获取中奖比例。修改后的代码如下def lottery(): rate get_lottery_rate() flag random.randint(1, rate[1]) if flag rate[0]: return True else: return False还是运行上面的测试方法这里要注意下因为我们现在是从数据库获取数据每次方法执行都要加上数据库链接的建立与销毁建议将循环次数修改为 1000 以内不然执行的时间就有点太长了。小编这里将循环次数修改为 1000 次后执行结果如下共计中奖 92 未中奖 908那么到这里我们就可以通过修改数据库中数据实时的操作中奖率了。当然上面的慢的问题我们可以使用数据库连接池等技术进行优化。增加奖项那么是否就结束了呢no no no我们接着加需求。现在我们只能知道每次到底中不中奖只有一个奖项但是现在想变成 3 个奖项如一等奖、二等奖、三等奖那该怎么办这个对之前的抽奖方法改动就有点大了首先我们先在数据库增加出来另外两个奖项的配置配置这里三个奖项的分母最好保持一致否则后续计算会徒增复杂度。修改我们获取配置的那个方法def get_lottery_rate(): conn pymysql.connect(hostlocalhost, port 3306, userroot, passwordpassword, databasetest, charsetutf8mb4) try: sql SELECT * FROM rate order by id asc cursor conn.cursor() cursor.execute(sql) result cursor.fetchall() return result except Exception as ex: print(ex) finally: conn.close()测试调用后结果如下((1, 10, 100), (2, 5, 100), (3, 1, 100))先在我们要做的是要将这个配置融入进我们之前的中奖的那个方法中不多说直接上代码# 判断中奖函数def lottery(): config get_lottery_rate() flag random.randint(1, config[0][2]) if flag config[0][1]: return 1 elif flag config[0][1] and flag (config[1][1] config[0][1]): return 2 elif flag (config[1][1] config[0][1]) and flag (config[2][1] config[1][1]): return 3 else: return 0接着修改我们的做测试的代码def main(): # 一等奖中奖次数 a 0 # 二等奖中奖次数 b 0 # 三等奖中奖次数 c 0 # 未中奖次数 d 0 # 循环次数 e 0 for i in range(1000): e 1 print(当前循环次数, e) result lottery() print(当前中奖结果, result) if (result 1): a 1 elif (result 2): b 1 elif (result 3): c 1 else: d 1 print(一等奖中奖, a, 二等奖中奖次数, b, 三等奖中奖次数, c, 未中奖次数, d)调用我们的测试方法if __name__ __main__: main()小编这里的运行结果如下增加会员判断到这里我们还没完还能加需求现在网站大多数都是会员制的比如白银会员黄金会员钻石会员如果不同的会员等级需要有不同的中奖率这个是很正常的一件事儿小编现在还清晰的记得当年某家大型互联网公司代码中的注释 “穷逼 VIP(活动送的那种)” 。我们假设钻石会员的中奖率为整体中奖率的 100% 黄金会员的中奖率为整体中奖率的 50% 白银会员的中奖率为整体中奖率的 20% 。最简单的实现方式是直接在最外层套一层会员中奖率的判断不知道各位同学怎么想。小编这里给出自己的解决方案# 判断会员等级中奖率过滤# 会员等级 1.白银会员 2.黄金会员 3. 钻石会员def vip_lottery(level): rate random.randint(1, 10) # 如果是钻石会员直接进入抽奖函数 if level 3: return lottery() # 如果是黄金会员 50% 概率进入抽奖函数 elif level 2: if rate 5: return lottery() else: return 0 # 如果是白银会员 20% 概率进入抽奖函数 elif level 1: if rate 2: return lottery() else: return 0 # 如果是其他直接返回未中奖 else: return 0我们新增一个测试增加会员过滤的测试方法# 会员制中奖测试方法def test_vip(): print(请输入您当前的会员等级1.白银会员 2.黄金会员 3. 钻石会员) level input() result vip_lottery(int(level)) if (result 1): print(恭喜您中了一等奖) elif (result 2): print(恭喜您中了二等奖) elif (result 3): print(恭喜您中了三等奖) else: print(未中奖谢谢惠顾)在我们的入口函数中调用这个方法if __name__ __main__: test_vip()最终测试结果如下小编的人品还可以嘛直接就能中三等奖。import randomimport pymysql# 获取中奖配置def get_lottery_rate(): conn pymysql.connect(host114.67.111.196, port 3306, userroot, passwordwsy123456, databasetest, charsetutf8mb4) try: sql SELECT * FROM rate order by id asc cursor conn.cursor() cursor.execute(sql) result cursor.fetchall() return result except Exception as ex: print(ex) finally: conn.close()# 判断中奖函数def lottery(): config get_lottery_rate() flag random.randint(1, config[0][2]) if flag config[0][1]: return 1 elif flag config[0][1] and flag (config[1][1] config[0][1]): return 2 elif flag (config[1][1] config[0][1]) and flag (config[2][1] config[1][1]): return 3 else: return 0# 判断会员等级中奖率过滤# 会员等级 1.白银会员 2.黄金会员 3. 钻石会员def vip_lottery(level): rate random.randint(1, 10) # 如果是钻石会员直接进入抽奖函数 if level 3: return lottery() # 如果是黄金会员 50% 概率进入抽奖函数 elif level 2: if rate 5: return lottery() else: return 0 # 如果是白银会员 20% 概率进入抽奖函数 elif level 1: if rate 2: return lottery() else: return 0 # 如果是其他直接返回未中奖 else: return 0# 批量测试方法def test(): # 一等奖中奖次数 a 0 # 二等奖中奖次数 b 0 # 三等奖中奖次数 c 0 # 未中奖次数 d 0 # 循环次数 e 0 for i in range(1000): e 1 print(当前循环次数, e) result lottery() print(当前中奖结果, result) if (result 1): a 1 elif (result 2): b 1 elif (result 3): c 1 else: d 1 print(一等奖中奖, a, 二等奖中奖次数, b, 三等奖中奖次数, c, 未中奖次数, d)# 会员制中奖测试方法def test_vip(): print(请输入您当前的会员等级1.白银会员 2.黄金会员 3. 钻石会员) level input() result vip_lottery(int(level)) if (result 1): print(恭喜您中了一等奖) elif (result 2): print(恭喜您中了二等奖) elif (result 3): print(恭喜您中了三等奖) else: print(未中奖谢谢惠顾)if __name__ __main__: test_vip()
http://www.yutouwan.com/news/182611/

相关文章:

  • 公司网站费用上海黄金网站设计
  • php网站模板怎么用网站推广途径选择
  • 怎么做公司内部网站wordpress侧面小工具
  • 网站优化大赛公关公司有哪些职位
  • 玉溪网站建设网站建设金坛网站开发
  • 做外贸怎么登陆外国网站成都商铺装修设计公司
  • 佛山市建网站做网站费用关于企业网站建设的必要性
  • 网站制作开发的步骤和方法个人网站的名字
  • 大连最好的做网站的公司公司管理软件有哪些
  • 电子商务网站建设的书佛山小程序开发平台
  • 金华永康网站建设网站建设与经营
  • 自己建网站怎么推广网络设计的基本原则有哪些
  • 无锡食品网站设计计算机平面设计主要学什么
  • 网站集约化建设讲话稿《网站平台建设》课程实训
  • 网站设计网站建设网站制作页面设计的内容
  • 做网站公司联系方式页面做网站成本
  • 网站建设实训不足推广计划书怎么写
  • 来宾网站seo荆州 商务 网站建设
  • 企业网站优化推广公司大型电子商务网站需要配服务器
  • 网站设计实训报告卖辅助网站怎么做
  • 如何申请网站com域名汽车可以做哪些广告视频网站
  • 德州企业网站优化公司做网站怎样套用模板
  • 做影视网站用的封面互联网营销培训的课程学费
  • 网站开发智能化方向睢宁县建设局网站
  • dede网站版权信息标签长治市住房保障和城乡建设管理局网站
  • 招聘网官方网站个人网站备案说明
  • 做母婴产品哪个网站做的好企业管理咨询包括哪些
  • 诸城网站建设哪家好室内设计公司排名一览表
  • 高端网站创建有的网站打不开是什么原因呢
  • 静安企业网站建设郴州建网站