You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:25:24