在 python 中实施 rot13

Implementing rot13 in python

我正在尝试实现 rot13 算法。显然不难,但我的问题是在 python 中有撇号的字符串我不知道如何解决这个问题。我不确定问题是出在我的程序上还是出在 python 运行s 的方式上,因为我试过 运行 一个像这样的空程序“python3 solve.py ' " 它没有 运行 但在终端中给了我一个 > 。 如果有人看到其他错误,我也会在下面添加我的代码。 通过空程序,我只是调用一个什么都不做的主程序。

import sys


def main(input):
    output = ""
    abc = "abcdefghijklmnopqrstuvwxyz"
    ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

    for i in input:
        if ord(i) in range(65,91):
            output += ABC[((ABC.find(i) + 13) % 26)]
        elif ord(i) in range(97,123):
            output += abc[((abc.find(i) + 13) % 26)]
        else:
            output += i
    return output

if __name__ == '__main__':

    result = main(sys.argv[1])

    print(result)

单撇号作为引号(可能是多行)字符串的开头,这就是您看到 > 提示的原因。如果发送一个撇号,您可以转义它或用双引号将其引用:

$ python solve.py \'
'
$ python solve.py "'"
'