Python生成随机数主要使用random模块,提供random()、uniform()、randint()、randrange()等函数生成浮点数和整数,choice()、sample()、shuffle()处理序列随机操作,而secrets模块用于加密安全的随机性需求。

Python要生成随机数,核心就是使用内置的
random
在Python中,生成随机数主要围绕
random
生成0到1之间的随机浮点数:
random.random()
import random print(random.random()) # 示例输出:0.73289...
生成指定范围内的随机浮点数:
random.uniform(a, b)
a
b
a
b
立即学习“Python免费学习笔记(深入)”;
import random print(random.uniform(10, 20)) # 示例输出:14.567...
生成指定范围内的随机整数:
random.randint(a, b)
a
b
a
b
import random print(random.randint(1, 10)) # 示例输出:5
从指定范围按步长生成随机整数:
random.randrange(start, stop, step)
range()
range(start, stop, step)
stop
import random print(random.randrange(0, 100, 5)) # 示例输出:75 (必须是0, 5, 10...这样的数)
从序列中随机选择一个元素:
random.choice(sequence)
import random choices = ['apple', 'banana', 'cherry'] print(random.choice(choices)) # 示例输出:banana
从序列中随机选择K个不重复的元素:
random.sample(population, k)
population
k
import random numbers = list(range(1, 11)) print(random.sample(numbers, 3)) # 示例输出:[7, 2, 9]
打乱序列的顺序:
random.shuffle(sequence)
import random cards = ['A', 'K', 'Q', 'J', '10'] random.shuffle(cards) print(cards) # 示例输出:['Q', '10', 'A', 'J', 'K']
在Python里,生成随机整数主要靠
random.randint()
random.randrange()
random.randint(a, b)
a
b
a
b
random.randint(1, 10)
randint
而
random.randrange(start, stop, step)
range()
range(start, stop, step)
stop
range()
step
random.randrange(0, 100, 5)
randrange
randrange(2, 101, 2)
randint
randint
randrange
生成随机浮点数,Python的
random
random.random()
random.uniform(a, b)
random.random()
[0.0, 1.0)
[min_val, max_val)
min_val + (max_val - min_val) * random.random()
这时候
random.uniform(a, b)
a
b
a
b
[a, b]
[b, a]
a
b
random.uniform(1.5, 3.8)
uniform
至于精度控制,Python的浮点数默认是双精度(通常是64位),这意味着它们已经有相当高的精度了。如果你需要将随机浮点数限制在特定的十进制位数,通常的做法是先生成浮点数,然后使用
round()
round(random.uniform(1.0, 10.0), 2)
round()
decimal
除了生成基础的数字,
random
secrets
对于序列处理,我们有:
随机选择一个元素 (random.choice
['石头', '剪刀', '布']
random.choice(['石头', '剪刀', '布'])
随机选择多个不重复的元素 (random.sample
random.sample(population, k)
population
k
random.sample
打乱序列顺序 (random.shuffle
random.shuffle(x)
x
谈到加密安全的随机性,这里就有一个非常重要的区分了。
random
在这种需要高强度随机性的场景下,Python提供了
secrets
secrets
/dev/urandom
CryptGenRandom
secrets
生成安全整数 (secrets.randbelow(n)
[0, n)
生成安全随机选择 (secrets.choice(sequence)
random.choice
生成随机字节串 (secrets.token_bytes([nbytes])
生成随机十六进制字符串 (secrets.token_hex([nbytes])
生成随机URL安全字符串 (secrets.token_urlsafe([nbytes])
我个人认为,理解
random
secrets
random
secrets
以上就是python怎么生成一个随机数_python随机数生成方法汇总的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号