话不多说,直接上今日学习的内容:
在使用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
喜欢的小可爱,给个三连,感谢支持!
(以上为这几天学习的函数使用方法,在扑克游戏中使用random.shuffle()函数可达到洗牌的目的)
写于 2021.04.11 19:41