在写抢红包的时候,定义了红包金额等为十进制,但是在将它们输出到红包金额列表:amount_list[] 的时候每一次随机的金额都正常;
唯独到了最后剩余的一个红包的金额时,单独加入列表会显示带上 Decimal() 类型字样
print("——拼手气红包——")
from decimal import*
import random
total = input("请输入红包总金额:")
num = input("请输入抢红包人数:")
amount_list = []
total = Decimal(total)
num = Decimal(num)
total = total * 100
total_min = 1
total_min = Decimal(total_min)
re_amount = total
pe = num
for i in range(int(num) - 1):
pe -= 1
print(pe)
amount = random.randint(1,re_amount - (total_min * pe))
re_amount = re_amount - amount
print("每一次随机金额:",amount,"\n每一次剩余金额:",re_amount)
amount_list.append(amount/100)
amount_list.append(re_amount/100)
print(type(total_min),type(re_amount),type(pe))
print("红包金额:",amount_list)
后面用float类型定义 re_amount/100 看起来像是解决了,
不知道这种解决方式正不正确:
修正了倒数第三行的代码↓
```python
print("——拼手气红包——")
from decimal import*
import random
total = input("请输入红包总金额:")
num = input("请输入抢红包人数:")
amount_list = []
total = Decimal(total)
num = Decimal(num)
total = total * 100
total_min = 1
total_min = Decimal(total_min)
re_amount = total
pe = num
for i in range(int(num) - 1):
pe -= 1
print(pe)
amount = random.randint(1,re_amount - (total_min * pe))
re_amount = re_amount - amount
print("每一次随机金额:",amount,"\n每一次剩余金额:",re_amount)
amount_list.append(amount/100)
amount_list.append(float(re_amount/100))
print(type(total_min),type(re_amount),type(pe))
print("红包金额:",amount_list)
```