【发布时间】:2021-11-19 13:11:13
【问题描述】:
我正在尝试实现 rot13 算法。显然不难,但我的问题是python中带有撇号的字符串我不知道该怎么做才能解决这个问题。我不确定问题出在我的程序还是 python 的运行方式上,因为我尝试运行像“python3 solve.py '”这样的空程序,但它没有运行,但在终端中给了我一个 >。 如果有人发现其他错误,我也会在下面添加我的代码。 通过空程序,我只是调用了一个什么都不做的 main。
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)
【问题讨论】:
-
您的程序看起来正确。问题是在大多数 shell 中
'表示文字的开始。在 Windows 中,您可以执行py -3 solve.py "'"(这是包含一个单引号的 2 个双引号)。根据您使用的 shell,会有不同的转义机制。 -
你真的是在命令行运行
python3 solve.py '吗?这与 Python 无关。这与你的 shell 有关,它正在等待你继续输入文本,直到它到达结束引号。您的问题是关于如何在 shell 中转义单引号。