You need to enable JavaScript to run this app. 为何我的Python凯撒密码代码逐字母输出,保留main()时仅输出单字符?
优惠活动
大模型
产品
解决方案
定价
更多

为何我的Python凯撒密码代码逐字母输出,保留main()时仅输出单字符?

代码异常根因

逐次输出累加结果的诱因

print(encryptedMessage) 缩进错误,被放置在for ch in msg的循环体内部。
当前执行逻辑下,循环每处理完1个明文字符,就会立刻打印一次当前已经拼接完成的部分加密串。因此输入“Lemons”时,会依次输出仅加密第1个字符的结果、加密前2个字符的结果……直到循环结束,所有中间态的输出都会被打印,而非输出最终完整密文。

仅输出单个字母的诱因

main() 调用同样存在缩进错误,被放置在for ch in msg的循环体内部。
当前执行流下,循环完成第1次迭代:处理完第1个明文字符、打印完当前半截加密结果后,就会直接触发main()调用,彻底中断当前的加密循环流程,根本不会继续处理剩余的明文字符,最终仅能输出加密后的第一个字母,还会触发重复的主流程输入弹窗。

修正要点

  • 将print(encryptedMessage)的缩进调整到for循环外部,等待所有明文字符完成加密拼接后,再执行单次打印输出完整密文
  • 将main()调用从循环体内部移出,放置在整个加密逻辑执行完毕的位置,避免逐字符处理流程被中途打断

内容的提问来源于stack exchange,提问作者PythonCoding

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 16:06:03