[Python学习日记-49] Python 中的随机数模块 —— random
简介
random 模块
简介
程序中有很多地方需要用到随机字符,例如登录网站的随机验证码,而这些功能可以通过 random 模块来很容易生成随机字符串,然后实现这些功能,下面来一起学习一下 random 模块的一些常用方法的介绍吧。
random 模块
一、randrange()
用于生成一个指定范围内的随机整数,语法如下
random.randrange([start], stop,[step])
参数说明:
- start:可选,范围的起始值(默认值为0)
- stop:范围的结束值,但不包括该值
- step:可选,步长(默认值为1)
返回一个随机选择的整数,范围在 [start, stop) 之间,按照步长 step 进行选择,演示代码如下
import random# 生成0-9之间的随机整数
num1 = random.randrange(10)
print(num1)# 生成1-10之间的随机整数,不包括11
num2 = random.randrange(1, 11)
print(num2)# 生成1-10之间的随机偶数
num3 = random.randrange(2, 11, 2)
print(num3)
代码输出如下:
二、randint()
用于生成一个指定范围内的随机整数,语法如下
random.randint(start, stop)
参数说明:
- start:生成随机整数的起始值
- stop:生成随机整数的结束值
函数返回一个随机选择的整数,范围在 [start, stop] 之间,包含 stop,演示代码如下
import random# 生成0-9之间的随机整数
num1 = random.randint(0, 9)
print(num1)# 生成1-10之间的随机整数
num2 = random.randint(1, 10)
print(num2)
代码输出如下:
三、random()
用于生成一个0到1之间的随机浮点数,语法如下
random.random()
返回一个0到1之间的随机浮点数,包括0但不包括1,演示代码如下
import random# 生成一个0到1之间的随机浮点数
num = random.random()
print(num)
代码输出如下:
四、choice()
用于从一个非空序列中随机选择一个元素,语法如下
random.choice(seq)
参数说明:
- seq:表示一个非空的序列,可以是列表、元组、字符串等
返回 seq 序列中的一个随机元素,演示代码如下
import random# 从列表中随机选择一个元素
fruits = ['apple', 'banana', 'orange', 'grape']
random_fruit = random.choice(fruits)
print(random_fruit)# 从字符串中随机选择一个字符
word = 'hello'
random_char = random.choice(word)
print(random_char)
代码输出如下:
五、sample()
用于从一个序列中随机选择多个元素,返回一个新的列表,语法如下
random.sample(population, k)
参数说明:
- population:表示一个非空的序列,可以是列表、元组、字符串等
- k:表示需要选择的元素个数,k 必须小于或等于 population 的大小
返回一个新的列表,其中包含从 population 中随机选择的 k 个元素,演示代码如下
import random
import string# 从列表中随机选择两个元素
fruits = ['apple', 'banana', 'orange', 'grape', 'kiwi']
random_fruits = random.sample(fruits, 2)
print(random_fruits)# 从字符串中随机选择三个字符
word = 'hello'
random_chars = random.sample(word, 3)
print(random_chars)# 随机选择数字+大小写字母五个字符
word = string.digits + string.ascii_uppercase + string.ascii_lowercase
random_chars = random.sample(word, 5)
print(''.join(random_chars))
代码输出如下:
上面代码使用了 string 模块,该模块可以提供了许多用于处理和操作字符串的函数和方法。一些常用的 string 模块函数和方法包括:
- string.ascii_letters:包含所有的 ASCII 字母(a-z和A-Z)
- string.ascii_lowercase:包含所有的小写 ASCII 字母(a-z)
- string.ascii_uppercase:包含所有的大写 ASCII 字母(A-Z)
- string.digits:包含所有的数字字符(0-9)
- string.punctuation:包含所有的标点符号字符
- string.capwords(s):将字符串 s 中的单词首字母大写,其他字母小写
- string.lower(s):将字符串 s 中的所有字母转为小写
- string.upper(s):将字符串 s 中的所有字母转为大写
- string.strip(s, chars):删除字符串 s 开头和结尾的 chars 中包含的字符
- string.replace(s, old, new):将字符串 s 中的 old 子串替换为 new 子串
六、shuffle()
用于对一个可变序列进行随机打乱顺序,语法如下
random.shuffle(seq)
参数说明:
seq:表示一个可变序列,例如列表之类的
该方法将会打乱原列表的顺序,并不会生成新的可变序列,演示代码如下
import random
import stringseq = list(string.digits + string.ascii_uppercase + string.ascii_lowercase)
print(seq)
random.shuffle(seq)
print(seq)
代码输出如下: