我试图通过ascii索引来搜索caesar cipher程序,该范围> = 32和< = 126。当我到达最后一个打印输出时,我得到一些字符不在这个范围内。我已经尝试了循环和while循环,但不断收到错误。使用索引范围搜索ascii
我很抱歉,如果我没有发布这个正确。这是我的第一篇文章。
感谢您的任何帮助。
def cipher(phrase,shift):
x = list(str(phrase))
xx = ''.join(list(str(phrase)))
yy = []
print(x)
for c in xx:
yy.append(chr(ord(c)+shift))
return ''.join(yy)
print(cipher('ABCDE', 97 - 65))
print(cipher('abcde', 65 - 97))
print(cipher(' !\"#$', 95))
和我的输出是:
['A', 'B', 'C', 'D', 'E']
abcde
['a', 'b', 'c', 'd', 'e']
ABCDE
[' ', '!', '"', '#', '$']
什么是你指定'x'和'xx'行的目的是什么?我不认为你需要这些。你可以直接在'phrase'上迭代。 – 2017-10-21 22:01:17
为什么最后一次打印的转换是95? – utengr
当你运行'print(cipher('!\“#$',95))'你会把所有的字符移到126以上。那么你想要达到什么效果? – gommb