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

如何在Python 3凯撒密码程序中保留空格

解决凯撒密码中空格被移位的问题

你的代码问题出在没有对空格做特殊处理,所有字符(包括空格)都执行了移位操作。空格的ASCII码是32,加上移位量3后变成35,对应字符就是#,这就是你看到的结果。

修改后的代码

message = input("type in a message: ")
messageInt = int(input("type in an integer: "))
newStrs = []

for letter in message:
    if letter == ' ':
        # 空格直接保留,不做移位
        newStrs.append(' ')
    else:
        x = ord(letter)
        x += messageInt
        newStrs.append(chr(x))

print("".join(newStrs))

关键改动说明

  • 把移位量的输入从float改为int:凯撒密码的移位量必须是整数,不需要浮点类型,避免多余的类型转换。
  • 添加空格判断逻辑:遇到空格时直接将其加入结果列表,跳过移位步骤。

测试示例

输入消息:hello there,移位量:3,输出结果:khoor wkhuh,空格正常保留。

如果需要进一步优化(比如只对字母进行移位,忽略数字、标点等其他符号),可以把判断条件改成if not letter.isalpha(),这样非字母字符都会被直接保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:25:14