python常用内置模块-random模块

admin / 开发 / ... / Reads: 63

python常用内置模块-random模块

random()

随机获取0 到1 之间的浮点数,即 0.0 <= num < 1.0

import random
# 使用random模块,必须导入

num = random.random()
print(num)  # 0.0 <= num < 1.0

randint(m, n)

随机获取m 到n 之间的整数,即m <= num <= n

num = random.randint(2, 10)
print(num)  # 2 <= num <= 10, 注意:是整数

randrange(start, stop, [step])

随机获取start 到stop之间的整数,且步长为step,默认为1。即start <= num < stop

默认步长时,random.randrange(1, 5) 等价于 random.randint(1, 4)

# 默认步长
num = random.randrange(1, 5)
print(num)

# 设置步长为2
num_step = random.randrange(1, 10, 2)
# num_step的取值范围是:1到9之间的任意一个奇数
print(num_step)

shuffle(list)

将列表中的元素顺序打乱,类似洗牌的操作(不确定是列表还是可迭代对象,有误请指正)

code_list = ['l', 'd', 'e', 'a', 'w', 'e', 'n']
random.shuffle(code_list)  # 返回值为None,直接在原列表中操作
print(code_list)

choice()

从一个非空序列中随机取出一个元素返回

code_turple = ('l', 'd', 'e', 'a', 'w', 'e', 'n')
res = random.choice(code_turple)
print(res)

以下是一个获取随机验证码的小案例

'''
获取随机验证码小案例
chr(int(n)):用于将ASCⅡ码的数值转换成对应的字符,n的取值范围在0~255,返回值为字符串类型
ord(str('a')):用于将单字符字符串转换成对应的ASCⅡ码,返回值为整型
在ASCⅡ码中,数值65-90:大写英文字符;数值97-122:小写英文字符
'''
def get_code(n):
    '''n:生成几位的验证码'''
    code = ''
    for line in range(n):
        # 随机获取任意一个小写字符的ASCⅡ码
        l_code = random.randint(97, 122)
        # 将ASCⅡ码转换成对应的字符
        l_code = chr(l_code)
        # 随机获取任意一个大写字符的ASCⅡ码
        u_code = random.randint(65, 90)
        # 将ASCⅡ码转换成对应的字符
        u_code = chr(u_code)
        # 随机获取任意一个0-9之间的数字
        n_code = random.randint(0, 9)
        # 将上述3个随机字符存储起来
        code_list = [l_code, u_code, n_code]
        # 从列表中任意取出一个
        random_code = random.choice(code_list)
        # 将字符拼接起来
        code += str(random_code)
    return code

print(get_code(5))

关于作者

王硕,网名信平,十多年软件开发经验,业余架构师,精通Java/Python/Go等,喜欢研究技术,著有《PyQt 5 快速开发与实战》《Python 3.* 全栈开发》,多个业余开源项目托管在GitHub上,欢迎微博交流。

Comments

Make a comment

Author: admin

Publish at: ...

关于作者

王硕,网名信平,十多年软件开发经验,架构师,熟悉 Java/Python/Go 等,喜欢研究技术,读书,音乐和宅在家里。
专注于研究互联网产品和技术,提供中文精品教程。 本网站与其它任何公司及/或商标无任何形式关联或合作。
Email: xujieiata@163.com

www.ultrapower.com ,王硕的博客,专注于研究互联网产品和技术,提供中文精品教程。 本网站与其它任何公司及/或商标无任何形式关联或合作。