Python如何随机选取字母、数字、符号等任意字符编写密码生成器
简易实现方法
你现在已经导入了string模块,这个模块本身就内置了数字、常用符号的现成常量,完全不用额外写复杂逻辑或者安装第三方库,只需要改1行代码就能实现全字符类型随机选取的需求,对新手非常友好:
首先你可以先了解string模块里和密码字符相关的3个内置常量:
string.ascii_letters:你当前代码正在使用的,包含所有大小写英文字母(a-z、A-Z)string.digits:包含0-9的全部数字字符string.punctuation:包含!"#$%&'()*+,-./:;<=>?@[\]^_{|}~`这类密码常用的特殊标点符号
你只需要把这三个字符串直接拼接起来,作为随机选取字符的候选池即可,和你原来写的代码逻辑完全兼容,不需要改动其他部分。
修改后的完整代码如下:
import random import string length = int(input("Enter the desired length of password: ")) # 拼接字母、数字、符号作为完整的候选字符集 values = string.ascii_letters + string.digits + string.punctuation for i in range(length): char = random.choice(values) print(char, end="")
小补充:如果你的密码使用场景不支持部分特殊符号,可以手动调整候选池内容,比如把
string.punctuation替换成你自己写的允许使用的符号字符串,例如"!@#$%^&*()"就只会选取这几个接受度最高的常用符号,调整起来非常灵活。
内容的提问来源于stack exchange,提问作者Hissan
相关产品推荐
相关产品推荐

