python3 题解(52 最原始的加密解密)

原始加密解密

【问题】据传说,最原始的加密解密是使用在罗马军队传递情报的环节中。其原理只是把明文的字母向后移动 k 个位置。比如k=2时,a变成c,b变成d,y则变为a,z变为b。
请据此规则编写加密、解密的程序。
我们不妨假定只对小写字母加密,其它的符号保持不变。

分析:
加密的过程向后移动,遇到z后,再循环回a,这可以用 +k 取模来实现。
解密实际上就是 -k 参数的加密而已。

## 原始的加密解密
def encode(s,k): ## 每个字母后移 k 位
    r = ""
    for i in s:
        if 'a' <= i <= 'z':
            n = ord(i)-ord('a')
            n = (n + k + 26) % 26
            i = chr(ord('a') + n)
        r += i
    return r

def decode(s,k):
    return encode(s,-k)

if __name__ == '__main__':
    print(encode('xyz AC 122 abc',2))
    print(decode(encode('xyz AC 122 abc', 2),2))

需要补基础的,可以看:小甲鱼pyhthon教程,Bilibili站上还有:[耿老师]小甲鱼python作业 解析系列,持续更新中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值