Skip to content

【练习】随机密码

项目简介

随机密码

知识模块

  • 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位的随机密码,并打印生成的密码

代码讲解

  1. 首先,从 random 模块中导入了 choice 函数,该函数用于在序列中随机选择一个元素。同时,导入了 string 模块,用于获取 ASCII 字符集。

  2. 创建了一个名为 all_chs 的变量,存储了大小写字母和数字的组合,即包含了所有可选的字符。

  3. 定义了一个名为 gen_pass 的函数,该函数用于生成随机密码。函数接受一个参数 n,表示密码的长度,默认值为 8。

  4. 在函数中,首先初始化一个空字符串 result,用于存储生成的密码。

  5. 然后,通过循环 for i in range(n): 循环 n 次,每次生成一个随机字符。在循环中,使用 choice(all_chs)all_chs 中随机选择一个字符,并将其添加到 result 字符串中。

  6. 循环结束后,函数返回生成的密码字符串。

  7. if __name__ == '__main__': 中,进行了测试和输出:分别调用 gen_pass() 默认生成长度为 8 位