Python学习笔记——random

本文介绍了Python random模块的基础用法,包括生成随机浮点数、整数、选择列表元素、随机排列和采样。通过实例演示如何随机抽取扑克牌,展示了不同随机方法的运用。重点讲解了指数、伽玛、高斯等分布函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


简介

random常用于随机几率应用,一个不难但非常重要的模块。


random是什么?

该模块为各种分布实现伪随机数生成器。
对于整数,有一个范围内的统一选择。
对于序列,可以统一选择一个随机元素,可以生成就地列表的随机排列的函数,还可以进行无需替换的随机采样。

常用方法

使用示例

import random                                        
print(random.random())                               
print(random.randint(3,9))                           
print(random.randrange(1,17,3))                      
print(random.choice([1,2,3]))                        
print(random.sample([1,2,3,"ac","bd",[1,"gf"]],3))   

方法简介

  1. random.random()
    返回范围为[0.0,1.0)的下一个随机浮点数。
  2. random.randint(a, b)
    返回一个随机整数N,使a <= N <= b
  3. random.choice(seq)
    从非空序列seq返回一个随机元素。
  4. random.sample(population, k)
    返回一个新列表,结果列表按选择顺序排列,所有子切片也将是有效的随机样本。

其他方法:

random.expovariate(lambd )
指数分布。 lambd为1.0除以所需的均值。它应该不为零。(该参数将被称为“拉姆达”,但是这是在Python保留字。)返回值的范围从0到正无穷大如果lambd为正,且从负无穷大到0,如果lambd为负。

random.gammavariate(alpha,beta )
伽玛分布。(不是伽马函数!)参数的条件是和。alpha > 0beta > 0

random.gauss(mu,sigma )
高斯分布。 mu是平均值,而sigma是标准偏差。这比normalvariate()下面定义的功能要快一些。

random.lognormvariate(mu,sigma )
记录正态分布。如果采用该分布的自然对数,则将获得均值mu和标准偏差sigma的正态分布。 mu可以具有任何值,并且sigma必须大于零。

random.normalvariate(mu,sigma )
正态分布。 mu是平均值,而sigma是标准偏差。

random.vonmisesvariate(mu,kappa )
mu是平均角度,以0到2 * pi之间的弧度表示,而kappa 是浓度参数,必须大于或等于零。如果 kappa等于零,则此分布在0到2 * pi的范围内减小到均匀的随机角度。

random.paretovariate(alpha )
帕累托分布。 alpha是shape参数。

random.weibullvariate(alpha,beta )
威布尔分布。 alpha是比例参数,beta是形状参数。

练习

随机抽牌

假设我们有一副扑克牌,将随机抽取一张扑克牌

import random 
#生成一副牌
color_card =["黑桃","红桃","梅花","方片"]                                  
card_n=["A",2,3,4,5,6,7,8,9,10,"J","Q","K"]                        
Playing_CARDS=[]                                                   
for i in color_card:                                               
    for x in card_n:                                               
        Playing_CARDS.append(i+str(x))                             
n=0                                                                
# print(Playing_CARDS)                                             
for y in range(len(Playing_CARDS)):                                
    print(y,">",Playing_CARDS[y],end="\t")                         
    n+=1                                                           
    if n==13:                                                      
        print()                                                    
        n=0                                                        
print("牌数量:",len(Playing_CARDS),type(len(Playing_CARDS)))          
                                                                   
# 用列表索引随机抽取                                                        
choice_P1=random.randint(0,len(Playing_CARDS))                     
print("此次抽取到了:",Playing_CARDS[choice_P1])                          
                                                                   
#使用choice随机抽取一张牌                                                   
choice_P=random.choice(Playing_CARDS)                              
print("此次抽取到了:",choice_P)                                          
                                                                   
                                                                   
#使用sample随机抽取三张牌                                                   
choice_P=random.sample(Playing_CARDS,3)                            
print("此次抽取到了:",choice_P)                                                         

三次抽取结果

可以看到,使用不同的方法进行抽取,效果一致。
这里插入图片描述](https://img-blog.csdnimg.cn/20210220132728249.png)


总结

random还有些使用方法,常用的基本都在这里了。在遇到随机抽取的情况时我们可以考虑使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值