码迷,mamicode.com
首页 > 其他好文 > 详细

模拟红包

时间:2018-11-03 17:25:18      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:strong   port   实现   int   恭喜发财   产生   [1]   最大   ati   

import random def func_word(): # 红包留言模块, user=input(‘恭喜发财,大吉大利‘) def leave_word(word=‘ 恭喜发财,大吉大利 ‘): print(‘-‘ * 15) print(‘\033[31;0m %s \033[0m‘ %word) print(‘-‘ * 15) if user==‘‘: leave_word() else: leave_word(word=user) def rob_func(lst): # 抢红包模块 def rob(lst): for i in lst: yield i obj = rob(lst) try: while True: user_o = input(‘>>>‘) if user_o == ‘ ‘: print(‘红包:\033[31;0m %s\033[0m 元‘ % (obj.__next__())) except StopIteration: print(‘\033[31;0m 你来晚啦 \033[0m‘) def ran(): # 随机红包模块 while True: money = float(input(‘>>>总金额 ‘)) if money < 0.01: print(‘红包金额应大于0.01‘) else: break while True: numbers = int(input(‘ 红包个数 ‘)) # 异常化处理 if numbers * 0.01 > money: print(‘单个红包必须大与0.01‘) else: break # 产生随机的红包值 (怎样能够尽量的随机化呢 产生的红包有个特别大的,不合理,钱越大越明显) lst = [] for i in range(numbers - 1): # 直接money这样的算法第一个抢的一定是最大的红包,但微信不是这样的 res = round(random.uniform(0, money / (numbers - i)), 2) # money/2这样的算法是不是也有的规律呢,不行这样的话,出现的错误更多 lst.append(res) # 这个算法里有一个不正常的数 money -= res lst.append(round(money, 2)) random.shuffle(lst) func_word() rob_func(lst) def ord(): # 普通红包模块 (基本能够按照预想的实现) while True: money = float(input(‘>>>单个金额 ‘)) if money < 0.01: print(‘红包金额应大于0.01‘) else: break numbers = int(input(‘红包个数 ‘)) # 这里可以加入一个异常化处理,可以只给用户一个输入数字的键盘,这是如何实现的 lst = [] for i in range(numbers): lst.append(money) func_word() rob_func(lst) def red_packet(): # 红包的选择模块 lst = [‘随机红包‘, ‘普通红包‘] for i in enumerate(lst, 1): print(i[0], i[1]) while True: try: # 这里可以加入一个异常处理,但是微信上是不会让你输数字以外的 num = int(input(‘>>>>‘)) print(‘-‘ * 10) print(lst[num - 1]) print(‘-‘ * 10) break except IndexError: print(‘你输入的数不对‘) except ValueError: print(‘请输入数字‘) except Exception: print(‘请重新输入‘) if num == 1: ran() if num == 2: ord() red_packet()

存在的问题
想不到怎样产生一组合理的随机数,上面提到的会有特别明显的一红包产生的是特别的大,并且总的金额数越大越明显,(请教^-^)

模拟红包

标签:strong   port   实现   int   恭喜发财   产生   [1]   最大   ati   

原文地址:http://blog.51cto.com/13747953/2312543

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!