#pyyhon day08
模拟微信抢红包
# -*- coding: utf-8 -*-
# decimal意思为十进制,这个模块提供了十进制浮点运算支持。
from decimal import Decimal
# 提供了随机方法
import random
print('——————————模拟微信抢红包——————————')
total = input('请输入要装入红包的总金额(元):')
num = input('请输入红包的个数(个):')
money_list = []
total = float(total)
total = round(total,2)
num = Decimal(num)
for i in range(1,int(num)): #从1开始循环num - 1次
number = random.uniform(0.01,total) #随机在0.01到红包总金额中取一个数
number = round(number,2) #取小数点后两位
total = total - number #剩下的金额
money_list.append(number) #将随机摇到的金额装入列表
lastnumber = round(total,2) #取小数点后两位
money_list.append(lastnumber) #将最后循环剩下的金额装入列表
random.shuffle(money_list) #将列表顺序打乱
for x in range(len(money_list)): # 输出结果
print('第'+str(x+1)+'个红包:'+str(money_list[x])+'元')
备注:round()函数在在小数点后第二位的时候会忽略掉第二个0,降低了数据的精确度。读者如果有更好的解决方案,请在下方留言,谢谢!