小案例--python编写设置拼手气红包模块

Posted 木子小世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小案例--python编写设置拼手气红包模块相关的知识,希望对你有一定的参考价值。

**此案例主要锻炼python基础逻辑思维能力​

**小编个人一直以为,看懂理解不难,难的是自行想到全部逻辑

拼手气红包发放,需满足:

设定金额与数量

金额最大为运气王

随机分配金额

# 附有多个输出用来解释每行代码

import random

def giveredpackets(total, num):
print(红包共元,分份.format(total, num))
each = []
already = 0
average = total / num # 平均金额
print(average--, average)
for i in range(1, num):
print(i---------------:, i)
# 为当前抢红包的随机分配,至少给剩下的人每人留平均金额
print(total-already钱剩余:, total - already)
print(剩下人一共分此以上---, (num - i) * average)
t1 = random.uniform(0, (total - already) - (num - i) * average)
t = round(t1, 2)
# round参数第一个是需要四舍五入的数,第二个是小数点后位数
print(这次红包-----, t)
each.append(t)
print(现在红包序列---, each)
already += t
print(现已分配的总金额---, already)
print(----------------------------------------------)
# 剩下所有钱发给最后一个人
each.append(round(total - already, 2)) # 剩下的钱四舍五入 加入队列
print(运气王:, max(each)) # 我自己写的用这个也许在想不到的地方会有风险
# 下面是标准的 将表排序从小到大,用列表下标的方式 获取最后一个数字为最大的金额
print(运气王:, sorted(each)[num - 1])
random.shuffle(each) # 将类表中的数据顺序打乱 随机排列
print(最终红包序列-------:, each)
return each


if __name__ == __main__:
total, num = 10, 6
giveredpackets(total, num)

代码结果(最后几行):

小案例--python编写设置拼手气红包模块_python

以上是关于小案例--python编写设置拼手气红包模块的主要内容,如果未能解决你的问题,请参考以下文章

java 模拟QQ拼手气红包

拼手气红包算法,保证金额不会随前后顺序进入而变化,微信的红包生成算法改编

拼手气红包算法,保证金额不会随前后顺序进入而变化,微信的红包生成算法改编

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第7节 内部类_20_发红包案例_手气红包随机

手气红包随即分发

看完微信抢红包算法你就明白,为啥你不是手气最佳