今日学习之random

话不多说,直接上今日学习的内容:

在使用random()之前须要导入相关的包
random库是标准库,即python本身自带的,不需要下载

import random

random.random() 方法返回随机生成的一个实数,它在[0,1)范围内。生成的实数为浮点数

import random
a=random.random()
print(type(a))
print(a)
------------------
结果:
<class 'float'>
0.8889807602159376

random.uniform(a,b)返回a与b之间的随机浮点数N,范围为[min(a,b),max(a,b)]。a、b不区分谁大谁小

import random
a=random.uniform(10,20) #a>b
b=random.uniform(20,10) #a<b
c=random.uniform(10,10) #a=b
print("a<b:%f"%a,"\n","a>b:%f"%b,"\n","a=b:%f"%c)
---------------------------------------------------
结果:
a<b:16.907557 
 a>b:18.234361 
 a=b:10.000000
 """说明一下:
 	"a<b:%f"%a:使用方法和c语言类似,%f:格式  %a:传入的参数,与%f相对应的位置
"""

random.randint(a,b)返回一个随机的整数N,N的取值的范围为[a,b],特别注意:a,b必须为整数且a<b,以下代码有两处错误,错误的原因不符合以上所述:

import random
a=random.randint(10,20) #a>b
print(a)
b=random.randint(20,10) #a<b
print(b)
c=random.randint(10,10) #a=b
print(c)
---------------------
结果:有两个错误,使用时需注意
Traceback (most recent call last):
  File "F:\poker_test\main.py", line 68, in <module>
    b=random.randint(20,10) #a<b
  File "C:\Users\******\AppData\Local\Programs\Python\Python39\lib\random.py", line 338, in randint
    return self.randrange(a, b+1)
  File "C:\Users\******\AppData\Local\Programs\Python\Python39\lib\random.py", line 316, in randrange
    raise ValueError("empty range for randrange() (%d, %d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (20, 11, -9)
a 16

random.randrange(start,stop,step)返回指定递增基数的集合中的一个随机数,start为开始值,stop为结束值step表示递增的基数,例如step=2,则从start开始每次递增2,直到stop。集合的范围:[start,stop)

不带参数step
import random
a=random.randrange(10,20) 
print("a",a)
--------------------------------
多次运行结果:
a 10
a 11
a 16
------------------------------
带参数step
import random
a=random.randrange(10,20,2) 
print("a",a)
------------------------------
多次运行结果:
a 16
a 18
a 14

random.choice(squence)返回一个列表,元组或字符串的随机项。sequence参数可以是列表、元组或字符串,注意:sequence参数不能为空,为空则报异常

import random
a=[0,1,2,3,4,5,6,7,8,9]
b=["1","2","022","242","65","5","12","9","5","3"]
a0=random.choice(a)
b0=random.choice(b)
print("a0",a0)
print("b0",b0)
-----------------------------------
结果:
a0 5
b0 022
---------------------
为空
import random
c=()
c0=random.choice(c)
print("c0",c0)
----------------------------------
结果:
Traceback (most recent call last):
  File "F:\poker_test\main.py", line 73, in <module>
    c0=random.choice(c)
  File "C:\Users\******\AppData\Local\Programs\Python\Python39\lib\random.py", line 346, in choice
    return seq[self._randbelow(len(seq))]
IndexError: tuple index out of range

random.shuffle(x) 用于打乱顺序,也称为洗牌 x为列表,元组或者字符串

import random
a=[0,1,2,3,4,5,6,7,8,9]
random.shuffle(a)
print(a)
----------------------------------------
结果:
第一次运行:
[4, 3, 2, 6, 0, 5, 9, 8, 7, 1]
第二次运行:
[0, 7, 2, 4, 3, 6, 1, 8, 9, 5]

random.sample(sequence,k) 从指定序列中随机获取k个元素为一个片段返回,sample函数不会修改序列原顺序

import random
a=[0,1,2,3,4,5,6,7,8,9]
a0=random.sample(a,2)  #从列表a中随机选取2个元素
print(a0)
-----------------------
多次运行结果:
第一次:
[0, 1]
第二次:
[5, 9]
第三次:
[6, 8]
----------------
元组
import random
a=(0,1,2,3,4,5,6,7,8,9)
a0=random.sample(a,2)
print(a0)
----------------
结果:
[1, 9]
-------------------
以上两次结果对比:sample函数返回一个列表(list)
代码证明:
import random
a=(0,1,2,3,4,5,6,7,8,9)
a0=random.sample(a,2)
print(type(a0))
结果
<class 'list'>

基本随机数函数: seed(), random()
扩展随机数函数: randint(), getrandbits(), uniform(),
randrange(), choice(), shuffle()

seed(a=None) 初始化给定的随机数种子,默认为当前系统时间

random.seed(10)     #产生种子10对应的序列

getrandbits(k) 生成一个k比特长的随机整数

random.getrandbits(10)
685

图片引用于https://www.jianshu.com/p/8799671d5858

喜欢的小可爱,给个三连,感谢支持!

(以上为这几天学习的函数使用方法,在扑克游戏中使用random.shuffle()函数可达到洗牌的目的)

写于 2021.04.11 19:41

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trust Tomorrow

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值