Python编程小记:random库

random是python中用于生成伪随机数的标准函数库,使用时候只需要import random。包含两类函数,常规的8个函数:

一、基础小结

第一类:基本随机函数

               random.seed(a):随机数种子。只要确定了随机种子,每一次产生的随机序列都是确定的。

               random.random():生成一个[0.0,1.0]之间的随机小数。

第二类:扩展随机函数

               random.uniform(a,b):生成一个[a,b]之间的随机小数。

               random.randint(m,n):生成一个[m,n]之间的随机整数。

               random.randrange(m,n[,k]):生成一个[m,n]之间以k为步长的随机整数。

               random.getrandbits(k):生成一个以k为步长的随机整数。

               random.choice(seq):从序列中随机选取一个元素。

               random.sample(seq,n):从序列中随机选取n个元素组成新的序列。

               random.shuffle(seq):对序列随机排序,返回打乱后的序列。

二、牛刀小试

1、以 123 为随机数种子,随机生成 10 个在 1 到 999(含)之间的随机数,以逗号分隔,打印输出,

import random
random.seed(123)
for i in range(10):
    print(random.randint(1,999), end=",")

2、输入一个正整数n,自动生成n个1-100范围内的随机浮点数,计算输出每个随机数,并显示平均值。

import random
random.seed(1)
n = eval(input())
sum = 0
for i in range(n):
    fl = random.uniform(1,100)
    sum += fl
    print(fl)
print('the average is:', sum/n)

3、请编写程序,生成随机密码。具体要求如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(1)使用 random 库,采用 0x1010 作为随机数种子。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(2)密码 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*中的字符组成。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(3)每个密码长度固定为 10 个字符。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(4)程序运行每次产生 10 个密码,每个密码一行。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(5)每次产生的 10 个密码首字符不能一样。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(6)程序运行后产生的密码保存在“随机密码.txt”文件中。

import random
random.seed(0x1010)
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*"
ls = []
excludes = ""
while len(ls) < 10:
    pwd = ""
    for i in range(10):
        pwd += s[random.randint(0, len(s)-1)]
    if pwd[0] in excludes:
        continue
    else:
        ls.append(pwd)
        excludes += pwd[0]

# 直接打印
print("\n".join(ls))

# 或写入文件
fo = open("随机密码.txt", "w")
fo.write("\n".join(ls))
fo.close()

 

你可能感兴趣的:(Python之路,python,random库)