import random money = int(input("输入红包金额:")) ren = int(input("输入红包数量:")) pop = [] # 用来存放每次获取的金额 r = 0 # 循环条件 if money == 0 and ren == 0: print("不能为0") else: while r < ren-1: tem = money/(ren-r) # 就是总金额除以红包数量减去r(如果循环条件不成立每次都会加一) k = 2*tem # 定义最大的金额,防止红包到后面越来越小不公平 get = round(random.uniform(0.01,k),2) # 取0.01到我们定义的最大金额中间的值 round:取小数点后2位 money = money - get # 总金额减去我们每次循环获取的值 r = r + 1 # 以上步骤为一次循环,结束后循环条件+1 pop.append(get) # 将我们每次获取的金额添加到列表中 pop.append(round(money,2)) # 因为我们的循环获取的值会少一个,而这步骤会将剩下的金额添加到列表中 for i in range(len(pop)): print(f"第{i+1}个人获取的金额为{pop[i]}") print(f"手气最好的是第{pop.index(max(pop))+1}人,金额为{max(pop)}元")
python模拟微信红包
最新推荐文章于 2024-05-14 11:00:23 发布