一、问题描述。
编写程序。在26个字母大小写和9个数字组成的列表中随机生成10个8位密码。
二、问题分析。
因为要在列表中随机生成密码,故需要将26个大、小写字母和9个数字存放在同一个列表中。
首先使用string模块中的ascii_letters和digits方法来引入大、小写字母与0-9的数字,然后用list()函数将字符串转换为列表,编写一个函数,可以输入想要的随机密码的个数,然后利用random库中的choice()函数生成密码。
三、代码示例。
import random
import string
s=string.ascii_letters+string.digits #“+”为字符串连接符
ls=[] #初始化ls为空列表
ls=list(s) #将字符串s中的字符存放于列表ls中
def getkey():
times=input("请输入要获取的随机密码个数:")
for t in range(eval(times)): #随机密码个数
key=[]
print("生成的随机密码为:") #此行可省略
for i in range(8):
k=random.choice(ls) #choice()函数可从序列类型中随机返回一个元素
key.append(k) #将新元素加入到key列表的末尾
for n in key: #遍历key列表
print(n,end="") #以一行的格式打印密码
print("\n")
getkey()
四、总结。
感觉代码还是太复杂,还需设法简化。
其实也可以直接用choice()函数从字符串中随机取元素,但是题目说要从列表中取元素,所以也就多了不必要的一步。
若有错误,敬请指正。