Python random库使用方法及异常处理方案

  • Post category:Python

Python random库使用方法及异常处理方案

介绍

Python中的random库用于生成伪随机数。该库提供了多种生成随机数的方法,可以用于各种需要随机数的场景。

安装

random库是Python标准库的一部分,无需安装额外的模块。

使用方法

生成随机整数

生成指定范围内的随机整数使用randint函数。函数接收两个参数ab,返回范围在[a,b]之间的随机整数。

import random

# 生成[0, 100]范围内的随机整数
rand_num = random.randint(0, 100)
print(rand_num)

生成随机小数

生成指定范围内的随机小数可以使用uniform函数。函数接收两个参数ab,返回范围在[a,b]之间的随机小数。

import random

# 生成[0.0, 1.0]范围内的随机小数
rand_num = random.uniform(0, 1)
print(rand_num)

从序列中随机选择

从序列中随机选择一个元素可以使用choice函数。

import random

fruits = ['apple', 'banana', 'orange', 'pear']
rand_fruit = random.choice(fruits)
print(rand_fruit)

打乱序列

打乱序列的顺序可以使用shuffle函数,该函数会直接修改原序列。

import random

fruits = ['apple', 'banana', 'orange', 'pear']
random.shuffle(fruits)
print(fruits)

随机抽取样本

从序列中随机抽取指定数量的元素可以使用sample函数。

import random

fruits = ['apple', 'banana', 'orange', 'pear', 'grape', 'kiwi']
rand_fruits = random.sample(fruits, 3)
print(rand_fruits)

异常处理方案

在生成随机数的过程中,当传递给函数的参数不符合正确的输入要求时,random库会抛出相应的异常。为了让代码更具健壮性,我们可以使用异常处理机制来捕获这些异常并进行相应的处理。

import random

try:
    rand_num = random.randint(100, 0)
except ValueError:
    print("Error: 输入的范围有误")

在以上代码中,由于传入的参数不符合要求,randint函数会抛出ValueError异常。我们使用try...except语句块来捕获这个异常,然后输出相应的错误信息。这样,我们就可以在出现异常时对程序进行相应的处理,防止程序崩溃。

示例说明

示例1:模拟骰子掷骰子游戏

编写一个小程序,模拟掷两个骰子,统计结果。

import random

# 模拟掷两个骰子,统计结果
def roll_dice():
    roll = random.randint(1, 6), random.randint(1, 6)
    print(roll)
    return sum(roll)

if __name__ == '__main__':
    result = roll_dice()
    if result == 7 or result == 11:
        print("玩家胜利!")
    elif result == 2 or result == 3 or result == 12:
        print("庄家胜利!")
    else:
        target = result
        print("进入下一轮游戏,目标点数为:", target)
        while True:
            result = roll_dice()
            if result == target:
                print("玩家胜利!")
                break
            elif result == 7:
                print("庄家胜利!")
                break

上述代码通过roll_dice函数模拟掷两个骰子并计算结果。然后在main函数中利用这个函数模拟骰子游戏,如胜利、失败、进入下一轮等情况。

示例2:生成随机验证码

编写一个小程序,生成一个长度为6的随机验证码。

import random
import string

# 生成随机验证码
def generate_code():
    code = ''.join(random.sample(string.ascii_letters + string.digits, 6))
    print(code)

if __name__ == '__main__':
    generate_code()

上述代码通过generate_code函数生成一个长度为6的由数字与字母组成的随机验证码。其中random.sample函数随机从指定的字符集中选择6个字符,然后通过join方法将这6个字符拼接成一个字符串。