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

Python实现ROT13算法时带撇号字符串输入报错问题求解

问题1:执行命令后终端返回>的原因

这是Shell(命令行终端)的语法规则导致,和Python代码完全无关。单引号在Shell中是字符串的包裹标识符,你输入的命令末尾只有开单引号、没有对应的闭单引号,Shell会判定你未完成字符串输入,因此输出>提示符等待你补全内容、闭合单引号,此时你输入任意内容后补充一个'即可触发程序执行。

问题2:如何传入带撇号(单引号)的参数

如果需要给程序传入包含单引号的字符串作为参数,有两种常用的Shell传参方案:

  • 用双引号包裹整个参数字符串:比如要传入it's a test,执行命令为python3 solve.py "it's a test"
  • 对单引号做转义处理:在单引号前加反斜杠转义,示例命令为python3 solve.py 'it'\''s a test'

代码本身的验证

你提供的ROT13实现逻辑是正确的,非字母字符(包括撇号、空格、符号等)都会原样保留,不存在功能缺陷。如果需要简化代码,可参考两个优化方向:

  1. 无需调用ord()判断ASCII范围,直接判断字符是否在大小写字母串中,可读性更高:
# 优化后的字符判断示例
for i in input:
    if i in ABC:
        output += ABC[((ABC.find(i) + 13) % 26)]
    elif i in abc:
        output += abc[((abc.find(i) + 13) % 26)]
    else:
        output += i
  1. Python标准库内置了ROT13编码支持,可直接调用实现等效逻辑:
import codecs
def main(input):
    return codecs.encode(input, 'rot13')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:24:05