random模块/string模块

时间:2023-03-09 21:48:29
random模块/string模块

一、random模块

  random模块可以很容易生成随机数和随机字符串。

random.randint(1, 100)  # 1-100之间取一个随机数
random.randrange(1, 100) # 1-100之间取一个随机数

  randint&randrange区别:randint包含100,randrange不包含100!!!

random.random()   # 返回一个随机浮点数
random.choice('huangisngiisha12131a@!!!') # 返回一个给定数据集合中的随机字符
random.sample('adwas1231as!@#!as', 4) # 从多个字符中选取特定数量的字符

  示例如下:

>>> random.random()
0.8102972151157363
>>> random.choice('huangisngiisha12131a@!!!')
'a'
>>> random.sample('adwas1231as!@#!as',4)
['@', '!', '', 's']

二、生成随机字符串(string模块)

  string模块常用方法:

>>> import string

>>> string.digits  # 数字字符串
''
>>> string.ascii_letters # 字母字符串
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase # 小写字母字符串
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase # 大写字母字符串
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.punctuation # 特殊字符
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

  生成随机字符串:

>>> import string
>>> s = string.ascii_lowercase + string.digits
>>> s
'abcdefghijklmnopqrstuvwxyz0123456789'
>>> random.sample(s, 5)
['p', 'c', '3', 'l', 'y']
>>> ''.join(random.sample(s,5))
'1lngp'

三、random.shuffle()

  shuffle方法将序列的所有元素随机排序

>>> li = list(range(20))
>>> random.shuffle(li) # 打乱排序
>>> li
[5, 1, 4, 6, 18, 10, 9, 2, 8, 7, 16, 17, 15, 12, 14, 13, 0, 11, 19, 3]