您的位置:

Python玩转随机数生成,让程序更具变化性和趣味性!

一、随机数的介绍和基本用法

随机数是计算机程序中非常重要的概念,Python也提供了一系列的随机数生成函数。其中,最基本的是random模块中的randint函数。该函数能够生成一个[a, b]范围内的整数:

import random
x = random.randint(a, b)  # 生成随机整数x,a <= x <= b

如果需要生成n个随机整数,可以使用for循环:

import random
n = 10
lst = []
for i in range(n):
    x = random.randint(a, b)
    lst.append(x)

此时,lst中就存储了n个[a, b]范围内的随机整数。

二、使用随机数制作有趣的游戏

随机数生成不仅有实用性,还可以用于制作有趣的游戏。比如猜数字游戏,游戏规则是程序随机生成一个[a, b]范围内的整数,用户需要通过输入猜出这个整数是多少。

首先,程序需要生成随机整数:

import random
a, b = 1, 100
answer = random.randint(a, b)

然后,用户需要逐次输入猜测值,并通过程序判断是否猜中。如果猜中,游戏结束,否则提示用户需要继续猜测:

while True:
    guess = input("请输入一个整数: ")
    guess = int(guess)
    if guess == answer:
        print("恭喜你猜中了!答案是:", answer)
        break
    elif guess < answer:
        print("你猜的数字偏小了,再试一次吧!")
    else:
        print("你猜的数字偏大了,再试一次吧!")

三、使用随机数制作抽奖程序

还可以使用随机数生成有趣的抽奖程序。现在有一个抽奖活动,需要从1000名用户中选出10个幸运儿,并且每个用户的中奖概率是不同的。其中,ID以1000为起点,以9999为终点,中奖概率为ID的个位数,比如1002的中奖概率为2%。

首先,生成1000名用户的ID和对应的中奖概率:

import random
probs = []
for id in range(1000, 10000):
    prob = id % 10  # 中奖概率为ID的个位数
    probs.append(prob)

然后,可以使用random.choices函数进行抽奖。该函数能够从权重列表中,按照对应权重生成指定数量的随机数:

winners = random.choices(range(1000, 10000), weights=probs, k=10)

此时,winners列表中就随机存储了10个幸运儿的ID。可以通过ID映射到对应用户,进行后续操作。