【练习】随机密码
项目简介
随机密码
知识模块
- Python 编程语言
知识点
- 函数
- 字符串操作
- for循环
- random模块
受众
- 初级测试开发工程师
- 初级Python开发工程师
作业要求
编写一个Python程序,随机生成一个密码,密码包含大小写英文字母和数字的组合
解题思路
- 设置一个用于随机取出字符的基础字符串
- 循环 n 次,每次随机取出一个字符
- 各个字符拼接起来,保存到变量 result 中
完整代码
from random import choice # 导入choice函数,用于从序列中随机选择一个元素
import string # 导入string模块,用于获取ASCII字符
all_chs = string.ascii_letters + string.digits # 大小写字母加数字,生成所有可选字符的字符串
#ascii_letters是string库中包含大小写英文字母的常量,digits是数字0-9的常量
#定义一个gen_pass
def gen_pass(n=8):#初始化是为8次
result = '' # 初始化一个空字符串,用于存储生成的密码
for i in range(n): # 循环n次,每次生成一个字符
ch = choice(all_chs) # 从all_chs中随机选择一个字符,赋值给ch
#choice是random的一个函数,意思是从序列(可以使元组,列表,字符串等)中随机获取一个值
result += ch # 将选中的字符添加到结果字符串中
return result # 返回生成的密码字符串
if __name__ == '__main__':
print(gen_pass()) # 调用gen_pass函数生成默认长度为8位的随机密码,并打印生成的密码
print(gen_pass(4)) # 调用gen_pass函数生成长度为4位的随机密码,并打印生成的密码
print(gen_pass(10)) # 调用gen_pass函数生成长度为10位的随机密码,并打印生成的密码
代码讲解
-
首先,从
random
模块中导入了choice
函数,该函数用于在序列中随机选择一个元素。同时,导入了string
模块,用于获取 ASCII 字符集。 -
创建了一个名为
all_chs
的变量,存储了大小写字母和数字的组合,即包含了所有可选的字符。 -
定义了一个名为
gen_pass
的函数,该函数用于生成随机密码。函数接受一个参数n
,表示密码的长度,默认值为 8。 -
在函数中,首先初始化一个空字符串
result
,用于存储生成的密码。 -
然后,通过循环
for i in range(n):
循环n
次,每次生成一个随机字符。在循环中,使用choice(all_chs)
从all_chs
中随机选择一个字符,并将其添加到result
字符串中。 -
循环结束后,函数返回生成的密码字符串。
-
在
if __name__ == '__main__':
中,进行了测试和输出:分别调用gen_pass()
默认生成长度为 8 位