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

在这里插入图片描述
备注:round()函数在在小数点后第二位的时候会忽略掉第二个0,降低了数据的精确度。读者如果有更好的解决方案,请在下方留言,谢谢!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值