在 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 "'"
'
我正在尝试实现 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 "'"
'