Python_程序实现发红包

Posted 芒果不盲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_程序实现发红包相关的知识,希望对你有一定的参考价值。

发红包

200块钱  20个红包

将200块随机分成20份  

基础版本:

 1 import random
 2 
 3 
 4 ret = random.sample(range(1, 200 * 100), 19)
 5 ret =  ret.sort()
 6 ret.insert(0, 0)
 7 ret.append(200 * 100)
 8 l = []
 9 
10 for  i in range(10):
11   l.append((ret[i + 1] - ret[i]) / 100)
12 
13 print(l)

 

 

函数版本:

import random


def red_packet(money, num):
    ret = random.sample(range(1, money * 100), num - 1)
    ret =  ret.sort()
    ret.insert(0, 0)
    ret.append(money * 100)

    for  i in range(num):
      l.append((ret[i + 1] - ret[i]) / 100)
    
    return l

ret = red_packet(100, 10)
print(ret)

 

 列表推导式版本:

import random


def red_packet(money, num):
    ret = random.sample(range(1, money * 100), num - 1)
    ret =  ret.sort()
    ret.insert(0, 0)
    ret.append(money * 100)

    return [(ret[i + 1] - ret[i]) / 100 for  i in range(num)]
   
ret = red_packet(100, 10)
print(ret)

 

 

进阶版:

 1 import random
 2 
 3 
 4 def red_packet(money, num):
 5     ret = random.sample(range(1, money * 100), num - 1)
 6     ret.extend([0, money * 100])  # 改进点
 7     ret =  ret.sort()
 8 
 9     return [(ret[i + 1] - ret[i])/100 for  i in range(num)]
10    
11 ret = red_packet(100, 10)
12 print(ret)

 

 

生成器版

 1 import random
 2 
 3 
 4 def red_packet(money, num):
 5     ret = random.sample(range(1, money * 100), num - 1)
 6     ret.extend([0, money * 100])
 7     ret.sort()
 8     
 9     for i in range(num):
10         yield (ret[i + 1] - ret[i]) / 100
11 
12 red_packet(100, 10)

 

以上是关于Python_程序实现发红包的主要内容,如果未能解决你的问题,请参考以下文章

用Python编写简单的发红包程序和计算器原理

Python之路09-随机验证码&发红包

PHP实现发红包程序

PHP实现发红包程序

微信发红包 PHP 实现

PHP实现发红包程序