python红包编写

def sendRedPacket(money,num):
    sum_money = 0
    ret = []
    money *= 100
    while sum_money != money:
        sum_money = 0
        ret.clear()
        l = random.sample(range(1,money),num - 2)
        l.sort()
        ret.append(l[0])
        ret.append(money - l[len(l) - 1])
        for i in range(1,len(l)) :
            ret.append(l[i] - l[i - 1])
        for i in ret:
            sum_money += i
    for i in range(0,len(ret)):
        ret[i] = ret[i]/100
    print(ret)


#改用生成器
def sendRedPacket(money,num):
sum_money = 0
ret = []
money *= 100
while sum_money != money:
sum_money = 0
ret.clear()
l = random.sample(range(1,money),num - 1)#生成点数
l.sort()
l.insert(0,0)
l.append(money)

for i in range(1,len(l)) :
ret.append(l[i] - l[i - 1])
print(ret,len(ret),len(l))
for i in ret:
sum_money += i
for i in range(0,len(ret)):
ret[i] = ret[i]/100
yield ret[i]
ret = sendRedPacket(200,10)
print(type(ret))
for i in ret:
print(i)

猜你喜欢

转载自www.cnblogs.com/cellking-xdb/p/11112776.html