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

Python密码加解密程序反转解密返回字符串时输出空白问题

问题原因及解决方案

根因分析

  • 最高概率是reverse输入值未匹配分支条件:现有代码仅对reverse == 'N'和reverse == 'Y'两个精确值做了分支判断,没有兜底逻辑。如果用户输入了小写的y/n、输入内容带前后空格、或者误输入其他字符,两个分支都不会触发,自然不会有任何解密结果输出,表现为空白。
  • 次概率是decryption函数内部逻辑问题:你在调用解密函数时传入了reverse参数,如果函数内部针对reverse='Y'的场景已经做了反转处理,甚至逻辑错误返回了空字符串/None,那后续再做切片反转得到的也是空值,打印出来就是空白。

修复方案

  1. 首先统一输入的reverse格式,避免匹配失败:
    将输入行reverse = input()修改为:
reverse = input().strip().upper()

这段代码会自动去除输入的前后空格、把小写字母转为大写,确保输入y、Y这类内容也能匹配到分支条件。
2. 补全兜底分支,方便定位问题:
在解密的两个判断分支后增加else分支,打印实际接收到的reverse值,排查匹配问题:

else:
    print(f"无效的reverse参数: {repr(reverse)}")
  1. 验证decryption函数的返回值:
    在reverse='Y'的分支中,先打印未反转的原始返回值,确认函数返回正常:
elif reverse == 'Y':
    orig_password = decryption(encrypted_password, key1, key2, reverse)
    # 临时加这行调试,确认orig_password非空
    print(repr(orig_password))
    print(orig_password[::-1])

如果调试发现orig_password为空,说明问题出在decryption函数内部的reverse参数处理逻辑,需要调整函数,避免在解密时重复处理反转、或者修正错误的返回逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:06:04