声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【第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)
标签:红包,0.01,money,浮点数,random,金额,列表,uniform
From: https://blog.csdn.net/skhoole/article/details/137613696