python模拟抢红包基础语法实现demo
1.实现抢红包 简易demo版 :
代码如下:
from decimalimport Decimal
# 提供了随机⽅法
import random
print('$$$$$$weichat模拟抢红包$$$$')
total =input('请输⼊要装⼊红包的总⾦额(元):')
num =input('请输⼊红包的个数(个):')
min =0.01  # 每个⼈最少能收到 0.01 元
# 创建红包列表
money_list = []
# 转换红包⾦额为⼗进制 ⽅便后期计算
total = Decimal(total)
# 转换红包个数为⼗进制 ⽅便后期计算
num = Decimal(num)
# 转换最⼩红包数为⼗进制 ⽅便后期计算
min = Decimal(str(min))
# 判断红包⾦额是否 ⼤于每个 红包个数*每个⼈最少获得的0.01
if total > num * min:
# 根据红包个数进⾏循环 重1开始 所以随机出来的会少1个红包
for iin range(1,int(num)):
# 根据循环到的红包个数 判断随机安全上限 不⾄于红包没⼈最少0.01
safe_total = (total - (num - i) * min)
# 随机出 获取红包⾦额
temp_min = min *100  # 随机的最⼩值
temp_max =int(safe_total *100)# 随机的最⼤值
money = temp_min/100 if temp_min > temp_maxelse (Decimal(random.randint(temp_min, temp_max)))/100        # 重置总⾦额 减去随机出的⾦额
total -= money
# 添加随机出的⾦额到 红包列表
money_list.append(money)
#保存最后⼀个元素到红包数组 不⾜红包数量
代码转换money_list.append(total)
# 随机打乱列表顺序
random.shuffle(money_list)
for xin range(len(money_list)):# 输出结果
print('第'+str(x+1)+'个红包:'+str(money_list[x])+'元')
2.效果图
输⼊界⾯:
输⼊10元
当输⼊的⾦额为0时 红包个数 ⼤于0时 不输出任何内容