利用列表编写一个发红包程序,要求输入红包金额money,红包个数n,显示由每个红包的金额所构成的列表。

声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

【第7次课]实验五组合数据类型(一)
4.简答题
利用列表编写一个发红包程序,要求输入红包金额money,红包个数n,显示由每个红包的
金额所构成的列表。
程序运行输出格式参考下图:

[提示]
(1)可以使用random库中的函数。例如:random.uniform(a,b)是Python中的random模块的一个函数,用于生成一个在[a,b)范围内的随机浮点数。其中,参数a是范围的下限,参数b是范围的上限。例如,random.uniform(0.01,10)将返回一个在[0.01,10)范围内的随机浮点数,可能是0.01、5.678、9.99等。

from random import uniform

amounts = []
money = float(input("请输入红包金额(元): "))  # 确保从用户那里获取总金额,并将其转换为浮点数
print(int(money),"\n")
n = int(input("请输入红包个数: "))
print(n)

if n <= 0 or money<=0:
    print("红包金额或个数必须大于0!")
elif money/n<0.01:print("红包总金额至少应达到每个红包0.01元!")
else:
    # 计算最后一个红包的金额
    last_red_packet = money - (n - 1) * 0.01
    for i in range(n):
        remaining_money = money - sum(amounts)
        max_amount = min(remaining_money, round(remaining_money / (n - i), 2))
        amount = round(uniform(0.01, max_amount), 2)
        amounts.append(amount)
        money -= amount  # 更新剩余金额
    amounts.append(last_red_packet)  # 添加最后一个红包金额
    print("随机红包金额列表:\n", amounts)

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值