def en(password,shift):
result = ""
for i in password:
result += chr(ord(i)+ shift)
return result
def de(password,shift):
result = ""
for i in password:
result += chr(ord(i) - shift)
return result
n=input("Input : ")
s=int(input("shift number : "))
e=en(n,s)
print("encoded : "+e)
print("decoded : "+de(e,s))
这是获取Caesar密码的方法
我无法解决。如何使用'shift number'-30~30一次打印?
答案 0 :(得分:0)
您还没有处理过三件事:
1)信件案例 - 大写和小写字母的按摩方式略有不同。
2)非字母 - 非字母应该可以通过未受质疑的字母。
3)模块化算术 - 当你向一个字母添加一个移位时,你可能会从字母表的末尾掉下来,所以你需要像时钟一样环绕初学者。解码时会发生相反的情况。
在更新代码时请考虑此示例:
% python3 test.py
Input: Veni, vidi, vici
Shift number: 13
encoded: Irav, ivqv, ivpv
decoded: Veni, vidi, vici
%