偷学Python第二十八天:Python中的random随机数模块的详细用法
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼
文章目录
random——生成伪随机数
该模块实现了各种分布的伪随机数生成器。对于整数,从范围中有统一的选择。 对于序列,存在随机元素的统一选择、用于生成列表的随机排列的函数、以及用于随机抽样而无需替换的函数。
生成随机数
random.random()
方法
返回随机生成的一个实数,它在[0,1)范围内。
语法结构
import random # 导入 random 模块
random.random()
random.randint
方法
语法格式
random.randint(a,b)
函数返回数字 N ,N 为 a 到 b 之间的数字(a <= N <= b),包含 a 和 b
random.uniform
方法
语法格式
random.uniform(a,b)
函数返回一个随机浮点数 N ,当
a <= b
时a <= N <= b
,当b < a
时b <= N <= a
。
random.randrange
方法
语法结构
random.randrange(start, stop[, step])
- start: 计数从 start 开始。默认是从 0 开始。例如randrange(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:randrange(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 randrange(0, 5, 1)
返回一个随机范围内的数字
等价于
choice(range(start, stop, step))
示例代码
"""
-*- coding:uft-8 -*-
author: 小甜
time:2020/5/27
"""
import random
random_value = random.random()
print(random_value)
randint_value = random.randint(1, 3) # 返回随机整数
print(randint_value)
uniform_value = random.uniform(1, 3) # 返回随机浮点数
print(uniform_value)
randrange_value = random.randrange(1, 100, 2) # 1到100步长为2(这里只能取到100以为的奇数)
print(randrange_value)
每次运行取到的结果都是不一样的,效果图↓
用于序列的函数
random.choice(seq)
从非空序列中返回一个随机元素,如果序列为空,则抛出异常
示例代码
import random
value = random.choice(range(1, 100, 2))
# 这个等于random.randrange(1, 100, 2)
print(value)
好像洗牌就要用这个方法哎
甜甜小案例:生成一个验证码的小案例
"""
-*- coding:uft-8 -*-
author: 小甜
time:2020/5/27
"""
import random
# 一个生成验证号的小案例
all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
captcha = ''
for _ in range(4):
a = random.choice(all_chars)
captcha += a # 连接字符串
print(captcha)
random.shuffle()
方法
shuffle(list)
方法将序列的所有元素随机排序
示例代码
import random
list1 = ["beautiful" , "cute", "beautiful", 'prefect', "beautiful", "甜甜", 'lovely']
random.shuffle(list1)
print(list1)
random.sample()
方法
random.sample(sequence, k)
,从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。切片长度不能超过原有的长度,否则会抛出异常
示例代码
"""
-*- coding:uft-8 -*-
author: 小甜
time:2020/5/27
"""
import random
list1 = ["beautiful", "cute", "beautiful", 'prefect', "beautiful", "甜甜", 'lovely']
list2 = random.sample(list1, len(list1))
print("原列表:", list1)
print("新列表:", list2)
这个方法可以给原序列排序并不破坏原有序列
总结
明日学习计划
Python的日期与时间