如何在Python中将密码的每个字符保存为独立变量?
密码猜测程序的字符比对优化方案
首先修正你代码里的关键问题:当前lower和upper列表仅包含一个拼接字符串,无法直接用于字符比对。建议改成单个字符组成的字符串(字符串本身可迭代,比列表更适合做成员判断):
# main.py # 用字符串存储大小写字母,方便后续比对 lower = "abcdefghijklmnopqrstuvwxyz" upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
关于你提到的「将密码字符保存为独立变量」的需求,其实完全没必要单独命名char1、char2这类变量,直接遍历密码的每个字符就能完成比对:
password = input("Please enter a password! ") # 直接遍历密码的每个字符,无需额外存储 for char in password: if char in lower: print(f"字符 '{char}' 匹配小写字母") elif char in upper: print(f"字符 '{char}' 匹配大写字母") else: print(f"字符 '{char}' 不在大小写字母范围内")
如果一定要把所有字符单独存储,用列表即可(每个字符对应列表的独立元素),后续遍历列表处理:
password = input("Please enter a password! ") # 把密码拆成单个字符的列表,每个元素就是独立的字符"变量" password_chars = list(password) # 遍历列表进行比对 for idx, char in enumerate(password_chars): if char in lower: print(f"第{idx+1}个字符 '{char}' 是小写字母") elif char in upper: print(f"第{idx+1}个字符 '{char}' 是大写字母")
核心逻辑:密码的每个字符可通过循环逐个获取,单独命名变量既冗余又无法适配不同长度的密码,用字符串或列表存储字符集合是更高效的方式。
内容的提问来源于stack exchange,提问作者OwenSucksAtCoding
相关产品推荐
相关产品推荐

