Python语法报错求助:实现密码复杂度提升时遇无效语法错误
问题解决:密码复杂化代码的语法与逻辑修正
你的代码存在几处语法错误和逻辑遗漏,下面逐条说明并给出修正后的代码:
错误点梳理
- 所有字符比较的目标(比如
i、a)和替换值(比如1、@)都没加引号,Python里字符串必须用单/双引号包裹,否则会被当作未定义变量,引发语法或NameError。 if和elif语句末尾必须加冒号:,这是Python语法的硬性要求,你的第6行就漏掉了。else块里的代码缩进错误,Python靠缩进区分代码块,new_pass = ...要和上面的if/elif保持同一缩进层级。- 示例输出要求末尾加
!,当前代码没有这个逻辑,需要补充。 - 未使用的变量
password可以直接删除,避免冗余。
修正后的代码
word = input() new_pass = '' for letter in word: if letter == 'i': letter = '1' elif letter == 'a': letter = '@' elif letter == 'm': letter = 'M' elif letter == 'B': letter = '8' elif letter == 's': letter = '$' # 其他字符保持原样 new_pass += letter # 最后添加示例要求的感叹号 new_pass += '!' print(new_pass)
测试验证
输入mypassword时,代码会:
- 把第一个
m替换为M - 把中间的两个
s替换为$ - 把
a替换为@ - 最后加上
!
最终输出:Myp@$$word!,符合你的要求。
内容的提问来源于stack exchange,提问作者Drew
相关产品推荐
相关产品推荐

