python实例(三)模拟微信抢红包

#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])+'元')

python实例(三)模拟微信抢红包_第1张图片
备注:round()函数在在小数点后第二位的时候会忽略掉第二个0,降低了数据的精确度。读者如果有更好的解决方案,请在下方留言,谢谢!

你可能感兴趣的:(学习,实例)