python random 模块使用教程


random 模块是 Python 中用于生成随机数的标准库。它提供了多种生成随机数的方法,可以用于各种场景,例如:

  • 随机抽样: 从序列中随机选择元素

  • 随机排列: 将序列中的元素随机排序

  • 随机生成数值: 生成随机整数、浮点数等

常用函数:

  • random(): 生成 0 到 1 之间的随机浮点数

  • uniform(a, b): 生成 a 到 b 之间的随机浮点数

  • randint(a, b): 生成 a 到 b 之间的随机整数 (包含 a 和 b)

  • randrange(start, stop[, step]): 生成 start 到 stop 之间以 step 为步长的随机整数

  • choice(seq): 从序列 seq 中随机选择一个元素

  • shuffle(seq): 将序列 seq 中的元素随机排列

  • sample(population, k): 从 population 中随机选择 k 个元素 (不放回)

示例:

import random

# 生成 0 到 1 之间的随机浮点数
random_float = random.random()
print(random_float)

# 生成 1 到 10 之间的随机整数
random_integer = random.randint(1, 10)
print(random_integer)

# 从列表中随机选择一个元素
my_list = ['apple', 'banana', 'orange']
random_choice = random.choice(my_list)
print(random_choice)

# 将列表中的元素随机排列
random.shuffle(my_list)
print(my_list)

模拟掷骰子:

import random

# 模拟掷一次骰子
dice_roll = random.randint(1, 6)
print("你掷出了:", dice_roll)

# 模拟掷多次骰子并统计结果
rolls = []
for _ in range(100):
    rolls.append(random.randint(1, 6))

print("点数\t出现次数")
for i in range(1, 7):
    print(f"{i}\t{rolls.count(i)}")

生成随机密码:

import random
import string

# 定义密码包含的字符集
characters = string.ascii_letters + string.digits + string.punctuation

# 生成指定长度的随机密码
password_length = 12
password = ''.join(random.choice(characters) for _ in range(password_length))

print("生成的随机密码:", password)

随机抽取中奖用户:

import random

users = ["Alice", "Bob", "Charlie", "David", "Emily"]
winner = random.choice(users)

print("恭喜", winner, "中奖了!")

模拟随机漫步:

import random

position = 0
walk = []
steps = 1000

for _ in range(steps):
    step = 1 if random.randint(0, 1) else -1
    position += step
    walk.append(position)

print("最终位置:", position)

随机生成彩票号码:

import random

# 生成 6 个不重复的随机数
lottery_numbers = random.sample(range(1, 50), 6)

# 对号码进行排序
lottery_numbers.sort()

print("本期彩票号码:", lottery_numbers)

按概率选择元素:

import random

# 定义每个选项的概率
options = {
    "A": 0.2,
    "B": 0.5,
    "C": 0.3,
}

# 使用 random.choices 按概率选择
choice = random.choices(list(options.keys()), weights=list(options.values()), k=1)[0]
print("选择的结果:", choice)

生成用户名和密码

import random
import string
  
def generate_username():
    """生成一个随机用户名。"""

    # 定义用户名的字符集。
    chars = string.ascii_lowercase + string.ascii_uppercase + string.digits 
    
    # 生成一个长度为8-12的随机用户名。
    username = ''.join(random.choice(chars) for i in range(random.randint(8, 12)))  
    return username

def generate_password():

    """生成一个随机密码。"""
    # 定义密码的字符集。
    chars = string.ascii_lowercase + string.ascii_uppercase + string.digits + '!@#$%^&*()'  

    # 生成一个长度为8-12的随机密码。
    password = ''.join(random.choice(chars) for i in range(random.randint(8, 12))) 
    return password


# 生成一个随机用户名和密码。
username = generate_username()
password = generate_password()

# 打印生成的用户名和密码。
print("用户名:", username)
print("密码:", password)

更多功能

random 模块还提供了其他一些功能,例如:

  • seed(): 设置随机数生成器的种子,用于生成可复现的随机序列

  • getstate()setstate(): 获取和设置随机数生成器的状态

  • gauss(mu, sigma): 生成符合正态分布的随机数

  • expovariate(lambd): 生成符合指数分布的随机数

注意: random 模块生成的随机数是伪随机数,并非真正的随机数。但对于大多数应用来说,已经足够随机了。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值