random常用方法详解
random:生成0到1之间的随机浮点数
>>> import random >>> random.random() 0.7752409555996718 |
uniform(a,b):生成a到b之间的随机浮点数
>>> import random >>> random.uniform(1,5) 2.9766041928834124 |
randint(a,b):生成a到b之间的随机整数,闭区间即包括b
>>> import random >>> random.randint(0,100) 91 |
randrange():在某个范围内生成一个随机数
>>> import random >>> random.randrange(10) #生成0到10之间的一个随机数 4 >>> random.randrange(10,50) #生成10到50之间的一个随机数 33 >>> random.randrange(10,50,2) #生成10到50之间的一个随机偶数 28 >>> random.randrange(10,-50,-1) #生成-50到10之间的一个随机数 -40 |
choice():随机选取序列中的某一个元素
>>> import random >>> random.choice((1,2,3,4)) #choice()返回的可以是int类型 4 >>> random.choice(["a","b","c"]) 'a' >>> random.choice("abcd") #choice()返回的也可以是str类型 'b' >>> random.choices((1,2,3,4)) #choices()返回的是一个list类型 [1] >>> random.choices("abcdef") ['e'] |
sample():随机选取序列中的指定个数的元素,返回一个列表
>>> import random >>> random.sample((1,2,3,4,5,6),3) [6, 1, 4] >>> random.sample("abcdef",2) ['b', 'c'] >>> random.sample(["basketball","football","badminton","ping-pong"],2) ['badminton', 'football'] |
shuffle():洗牌,打乱顺序
>>> import random >>> new=[1,2,3,4,5] >>> random.shuffle(new) >>> new [4, 1, 3, 5, 2] |
练习题:生成一个9位的随机密码,要求包含数字和字母
import string import random letters_num= random.randint(1,8) numbers_num = 9-letters_num password = ""
for i in range(9 ): if random.randint(0,1): #随机触发True和False,执行不同的分支 password +=string.ascii_letters[random.randint(0,52)] else: password +=string.digits[random.randint(0,9)]
print (password) |