Python之random模块详解

Python (180) 2023-05-22 10:37:48

python的random模块

random模块是python中一个生成随机数的模块。

random不是python解释器内置的模块。

导入random模块的方法是:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
importrandom
importrandom
importrandom

如果只使用random模块中的单个方法的话,也可以使用

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
fromrandomimportmethod_name
fromrandomimportmethod_name
fromrandomimportmethod_name

例如:

我只想生成一个10以内的随机的整数,不需要random模块的别的方法的时候,也可以使用以下命令

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
fromrandomimportrandint
random.randint(0,10)
fromrandomimportrandint random.randint(0,10)
fromrandomimportrandint
random.randint(0,10)

查看random模块的内置方法可以使用以下命令:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
dir(random)
dir(random)
dir(random)

其中常用的方法有下面几个:

choice

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
#从一个非空列表中随机选择一个元素
>Choosearandomelementfromanon-emptysequence.
#从一个非空列表中随机选择一个元素 >Choosearandomelementfromanon-emptysequence.
#从一个非空列表中随机选择一个元素
>Choosearandomelementfromanon-emptysequence.
纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
>>>random.choice([1,3,5,7])
1
>>>random.choice([1,3,5,7])
3
>>>random.choice([1,3,5,7]) 1 >>>random.choice([1,3,5,7]) 3
>>>random.choice([1,3,5,7])
1
>>>random.choice([1,3,5,7])
3

相关推荐:《Python视频教程》

randint

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
#从a和b(包括b)的范围内随机生成一个整数
>Returnrandomintegerinrange[a,b],includingbothendpoints.
#从a和b(包括b)的范围内随机生成一个整数 >Returnrandomintegerinrange[a,b],includingbothendpoints.
#从a和b(包括b)的范围内随机生成一个整数
>Returnrandomintegerinrange[a,b],includingbothendpoints.
纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
>>>random.randint(0,9)
8
>>>random.randint(0,9)
0
>>>random.randint(0,9)
4
>>>random.randint(0,9)
3
>>>random.randint(0,9) 8 >>>random.randint(0,9) 0 >>>random.randint(0,9) 4 >>>random.randint(0,9) 3
>>>random.randint(0,9)
8
>>>random.randint(0,9)
0
>>>random.randint(0,9)
4
>>>random.randint(0,9)
3

random

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
#生成一个0(包括0)到1内的浮点数
>random()->xintheinterval[0,1).
#生成一个0(包括0)到1内的浮点数 >random()->xintheinterval[0,1).
#生成一个0(包括0)到1内的浮点数
>random()->xintheinterval[0,1).
纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
>>>random.random()
0.3898009217264272
>>>random.random()
0.897328889551127
>>>random.random()
0.9899842422616898
>>>random.random() 0.3898009217264272 >>>random.random() 0.897328889551127 >>>random.random() 0.9899842422616898
>>>random.random()
0.3898009217264272
>>>random.random()
0.897328889551127
>>>random.random()
0.9899842422616898

randrange

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
#在指定范围内随机生成一个整数
>Choosearandomitemfromrange(start,stop[,step]).
Thisfixestheproblemwithrandint()whichincludesthe
endpoint;inPythonthisisusuallynotwhatyouwant.
#在指定范围内随机生成一个整数 >Choosearandomitemfromrange(start,stop[,step]). Thisfixestheproblemwithrandint()whichincludesthe endpoint;inPythonthisisusuallynotwhatyouwant.
#在指定范围内随机生成一个整数
>Choosearandomitemfromrange(start,stop[,step]).
Thisfixestheproblemwithrandint()whichincludesthe
endpoint;inPythonthisisusuallynotwhatyouwant.
纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
>>>random.randrange(100,200)
156
>>>random.randrange(100,200)
133
>>>random.randrange(10,20)
11
>>>random.randrange(10,20)
15
>>>random.randrange(100,200) 156 >>>random.randrange(100,200) 133 >>>random.randrange(10,20) 11 >>>random.randrange(10,20) 15
>>>random.randrange(100,200)
156
>>>random.randrange(100,200)
133
>>>random.randrange(10,20)
11
>>>random.randrange(10,20)
15

sample

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
#从一个列表或集合中随机选择多个元素
>Chooseskuniquerandomelementsfromapopulationsequenceorset.
#从一个列表或集合中随机选择多个元素 >Chooseskuniquerandomelementsfromapopulationsequenceorset.
#从一个列表或集合中随机选择多个元素
>Chooseskuniquerandomelementsfromapopulationsequenceorset.
纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
>>>random.sample([23,[1,2,3],"aa","yy"],2)
['aa',23]
>>>random.sample([23,[1,2,3],"aa","yy"],3)
['aa',[1,2,3],23]
>>>random.sample([23,[1,2,3],"aa","yy"],2) ['aa',23] >>>random.sample([23,[1,2,3],"aa","yy"],3) ['aa',[1,2,3],23]
>>>random.sample([23,[1,2,3],"aa","yy"],2)
['aa',23]
>>>random.sample([23,[1,2,3],"aa","yy"],3)
['aa',[1,2,3],23]

shuffle

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
#把一个列表内元素的顺序打乱,列表的内存地址不变
>Shufflelistxinplace,andreturnNone.
#把一个列表内元素的顺序打乱,列表的内存地址不变 >Shufflelistxinplace,andreturnNone.
#把一个列表内元素的顺序打乱,列表的内存地址不变
>Shufflelistxinplace,andreturnNone.
纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
>>>l1=[1,"a",3,5,"b","c"]
>>>id(l1)
140436582171208
>>>random.shuffle(l1)
>>>print(l1)
[1,'b','a','c',3,5]
>>>id(l1)
140436582171208
>>>l1=[1,"a",3,5,"b","c"] >>>id(l1) 140436582171208 >>>random.shuffle(l1) >>>print(l1) [1,'b','a','c',3,5] >>>id(l1) 140436582171208
>>>l1=[1,"a",3,5,"b","c"]
>>>id(l1)
140436582171208
>>>random.shuffle(l1)
>>>print(l1)
[1,'b','a','c',3,5]
>>>id(l1)
140436582171208

uniform

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
#在指定范围内随机生成一个浮点数
>Getarandomnumberintherange[a,b)or[a,b]dependingonrounding.
#在指定范围内随机生成一个浮点数 >Getarandomnumberintherange[a,b)or[a,b]dependingonrounding.
#在指定范围内随机生成一个浮点数
>Getarandomnumberintherange[a,b)or[a,b]dependingonrounding.
纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
>>>random.uniform(12,33)
27.02416276339153
>>>random.uniform(12,33)
13.832414985007832
>>>random.uniform(12,33)
12.827493699496461
>>>random.uniform(12,33) 27.02416276339153 >>>random.uniform(12,33) 13.832414985007832 >>>random.uniform(12,33) 12.827493699496461
>>>random.uniform(12,33)
27.02416276339153
>>>random.uniform(12,33)
13.832414985007832
>>>random.uniform(12,33)
12.827493699496461

现在想生成一个5位包含大小写和数字的随机验证码,代码如下:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
importrandom
defrandom_code():
random_str=""
foriinrange(5):
#随机选择一个整数
num=random.randint(0,9)
#生成一个大写字母
upper=chr(random.randint(65,90))
#生成一个小写字母
lower=chr(random.randint(97,122))
#每次从大小写字母中随机选择一位
res=random.choice([str(num),upper,lower])
random_str+=res
returnrandom_str
print(random_code())
importrandom defrandom_code(): random_str="" foriinrange(5): #随机选择一个整数 num=random.randint(0,9) #生成一个大写字母 upper=chr(random.randint(65,90)) #生成一个小写字母 lower=chr(random.randint(97,122)) #每次从大小写字母中随机选择一位 res=random.choice([str(num),upper,lower]) random_str+=res returnrandom_str print(random_code())
importrandom
defrandom_code():
random_str=""
foriinrange(5):
#随机选择一个整数
num=random.randint(0,9)
#生成一个大写字母
upper=chr(random.randint(65,90))
#生成一个小写字母
lower=chr(random.randint(97,122))
#每次从大小写字母中随机选择一位
res=random.choice([str(num),upper,lower])
random_str+=res
returnrandom_str
print(random_code())

运行5次这个程序,生成的验证码如下:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
KwlTN
t1Pag
294l6
t1Pag
294l6
KwlTN t1Pag 294l6 t1Pag 294l6
KwlTN
t1Pag
294l6
t1Pag
294l6
THE END

发表回复