Python random模块:让随机变得更有趣
介绍
在Python编程中,我们常常需要使用随机数。比如,我们可能需要在一个列表中随机选择一个元素,或者需要生成一个随机数作为密码或验证码。这时候,Python的random模块就派上用场了。
Python的random模块提供了各种各样的随机函数,可以用来生成随机数、随机序列、洗牌等等。在本文中,我们将介绍random模块的一些常用函数,以及如何使用它们来让随机变得更有趣。
生成随机数
最基本的随机函数是random(),用于生成一个0到1之间的随机浮点数。
import random x = random.random() print(x)
输出结果可能是:
0.346782465
也有可能是:
0.987654321
如果我们需要生成一个指定范围内的随机整数,可以使用randint(a, b)函数,它会返回一个a到b之间的随机整数。
import random x = random.randint(1, 10) print(x)
输出结果可能是:
5
也有可能是:
9
如果我们需要生成一个指定范围内的随机浮点数,可以使用uniform(a, b)函数,它会返回一个a到b之间的随机浮点数。
import random x = random.uniform(0, 1) print(x)
输出结果可能是:
0.546738
也有可能是:
0.123456
生成随机序列
有时候,我们需要生成一个随机序列,比如从一个列表中随机选择若干个元素,或者洗牌一个序列。
如果我们需要从一个列表中随机选择若干个元素,可以使用sample(seq, k)函数,它会返回一个包含k个随机选择元素的列表。
import random lst = [1, 2, 3, 4, 5] x = random.sample(lst, 3) print(x)
输出结果可能是:
[2, 4, 1]
也有可能是:

[5, 1, 3]
如果我们需要将一个序列洗牌,可以使用shuffle(seq)函数,它会将序列随机打乱。
import random lst = [1, 2, 3, 4, 5] random.shuffle(lst) print(lst)
输出结果可能是:
[2, 5, 4, 1, 3]
也有可能是:
[3, 2, 5, 1, 4]
生成随机密码
在实际应用中,我们常常需要生成一些随机密码或验证码。下面是一个简单的生成随机密码的例子:
import random
import string
def generate_password(length):
    letters = string.ascii_letters + string.digits
    password = ''.join(random.choice(letters) for i in range(length))
    return password
x = generate_password(8)
print(x)
这个函数会生成一个包含大小写字母和数字的8位随机密码。
输出结果可能是:
xYHt3r7L
也有可能是:
KlNf2b5P
让随机变得更有趣
通过上面的介绍,我们已经了解了random模块的一些基本用法。但是,如果我们想让随机变得更有趣,我们可以结合一些其他的Python模块来实现。
比如,我们可以使用turtle模块来画出随机图形:
import random
import turtle
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']
turtle.speed(0)
for i in range(100):
    x = random.randint(-200, 200)
    y = random.randint(-200, 200)
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()
    color = random.choice(colors)
    turtle.color(color)
    turtle.begin_fill()
    turtle.circle(50)
    turtle.end_fill()
turtle.done()
这个程序会在屏幕上随机生成100个不同颜色的圆形。
我们还可以使用pygame模块来实现一些更有趣的随机游戏,比如下面这个简单的打地鼠游戏:
import random
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
background = pygame.Surface((800, 600))
background.fill((255, 255, 255))
mole = pygame.image.load('mole.png')
hammer = pygame.image.load('hammer.png')
mole_x = random.randint(100, 700)
mole_y = random.randint(100, 500)
score = 0
font = pygame.font.SysFont('Arial', 36)
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    screen.blit(background, (0, 0))
    screen.blit(mole, (mole_x, mole_y))
    mouse_x, mouse_y = pygame.mouse.get_pos()
    if mouse_x >= mole_x and mouse_x = mole_y and mouse_y 					
			
 
					

 
		 
		 
		 
		 
		 
		 
		 
		
 
	
还没有评论,来说两句吧...