Python随机密码生成器实战

部署运行你感兴趣的模型镜像

求赞 求关注

如果你不想让一片好的文章被埋没,那就把他免费共享出来。

当然写的不怎么好,因为我才刚小学毕业。

如果想下载这里有链接 https://download.youkuaiyun.com/download/mc54321/91240180

正文开始

在编写这个程序我们需要导入random模块。

import random

random 模块是 Python 标准库中的一个模块,用于生成伪随机数。在许多场景下都非常有用,比如生成随机密码、随机抽样、模拟随机事件等。

然后我们可以生成一个列表,当然如果您想让密码更安全可以生成如下的一个列表。

mmk = ["1","2","3","4","5","6","7","8","9",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"!","@","#","$","%","^","&","*","<",">"]

接下来我们将要用random模块来生成随机的密码

mm = random.choices(mmk, k=10)

代码详细解释

  • random.choices():这是 random 模块里的一个函数,作用是从给定的序列里随机选取元素,而且选取的元素可以重复。
  • mmk:作为 random.choices() 函数的第一个参数,代表用来选取元素的序列。在这段代码里,mmk 是一个包含数字、大写字母、小写字母和特殊符号的列表,它是密码字符的候选集合。
  • k=10:这是 random.choices() 函数的关键字参数,用来指定要选取的元素数量。这里设定为 10,意味着会从 mmk 列表里随机选取 10 个元素。
  • mm:用于存储 random.choices() 函数返回的列表,该列表包含了随机选取的 10 个元素。

这段代码可有可无,但它可以测试程序是否真可以生成一段密码。

print(ksrmm)

接下来的这行代码是用户输入部分最重要的一部分

ksrmm = ''.join(mm)

代码组成分析

  • join() 方法:这是 Python 字符串对象的一个内置方法,用于将可迭代对象(如列表、元组等)中的元素以指定的字符串作为分隔符连接起来。其语法为 separator.join(iterable),其中 separator 是分隔符字符串,iterable 是包含多个元素的可迭代对象。
  • '':这是 join() 方法的调用者,代表一个空字符串。意味着在拼接列表 mm 中的元素时,元素之间不会插入任何额外的字符。
  • mm:这是 join() 方法的参数,是一个列表。在你的代码里,mm 是通过 random.choices(mmk, k=10) 生成的,包含 10 个随机选取的字符。

代码执行过程

  1. Python 解释器会调用空字符串 '' 的 join() 方法。
  2. join() 方法会遍历列表 mm 中的每个元素。
  3. 按照顺序将列表 mm 中的元素依次拼接起来,元素之间不添加任何分隔符。
  4. 最终将拼接好的字符串赋值给变量 ksrmm

接下来就是让用户输入密码并检查密码是否正确。

# 等待用户输入并存储到变量中
user_input = input()
# 进入外层循环,持续获取用户输入并与随机生成的字符串 ksrmm 进行比较
while True:
    if user_input == ksrmm:  # 如果用户输入的内容与随机生成的字符串 ksrmm 完全相同,则打印 "密码正确" 并退出循环
        print("密码正确")
        break
    else:  # 如果用户输入的内容与随机生成的字符串 ksrmm 不同,则打印 "密码错误,请重新输入" 并继续等待用户输入
        user_input = input("密码错误,请重新输入")

代码组成分析

  • user_input = input(),这行代码调用 input() 函数获取用户输入,并将输入的内容以字符串形式存储到变量 user_input 里,方便后续与随机生成的密码进行比较。

  • while True: 这行代码创建了一个无限循环,True 是布尔常量,意味着循环条件永远为真,循环体会一直执行,直到遇到 break 语句才会跳出循环。

  • if user_input == ksrmm 这是一个条件判断语句,将用户输入的 user_input 和之前随机生成的密码 ksrmm 进行比较。若两者相等,说明用户输入的密码正确,执行 if 代码块里的内容。

  • print("密码正确") 当 if 条件判断为 True 时,执行这行代码,在控制台输出 "密码正确"

  • break  break 是 Python 关键字,用于跳出当前所在的循环。在这里,当用户输入的密码正确时,执行 break 语句,结束 while 无限循环。

  • else:   if 条件判断为 False 时,说明用户输入的密码错误,执行 else 代码块里的内容。

  • user_input = input("密码错误,请重新输入")   else 代码块中,调用 input() 函数提示用户重新输入密码,并将新的输入内容存储到 user_input 变量里,接着进入下一次循环继续比较。

完整代码

'''
求赞 求关注

'''

print("这是一个密码生成器。")
import random #导入random模块
# 定义一个包含数字 1 - 9 和大写字母 A - Z 的列表
mmk = ["1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"!","@","#","$","%","^","&","*","<",">"]
# 从 mmk 列表中随机选取 10 个可重复的元素,结果存储在 mm 变量中
mm = random.choices(mmk, k=10)
#打印提示信息
print("我们先要进行一个密码验证")
# 将列表转换为字符串
ksrmm = ''.join(mm)
#打印ksrmm的值
print(ksrmm)

# 等待用户输入并存储到变量中
user_input = input()
# 进入外层循环,持续获取用户输入并与随机生成的字符串 ksrmm 进行比较
while True:
    if user_input == ksrmm:  # 如果用户输入的内容与随机生成的字符串 ksrmm 完全相同,则打印 "密码正确" 并退出循环
        print("密码正确")
        break
    else:  # 如果用户输入的内容与随机生成的字符串 ksrmm 不同,则打印 "密码错误,请重新输入" 并继续等待用户输入
        user_input = input("密码错误,请重新输入")

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值