Python核心编程第二版 第七章课后练习 7-10.加密

ROT13加密解密实现

版本:python3.7.4

7-10.加密。(a)用上一个练习的思路编写一个“rot13”翻译器。“rot13”是一个古老而又简单的加密方法,它把字母表中的每个字母用其后的第13个字母来代替。字母表中前半部分字母将被映射到后半部分,而后半部分字母将被映射到前半部分,大小写保持不变。举例来说,'a'将被替换为'n','X'将被替换为'K';数字和符号不进行翻译。

(b)在你的解决方案的基础上加一个应用程序,让它提示用户输入准备加密的字符串(这个算法同时也可以对加密后的字符串进行解密)。

import re
str_ap="abcdefghijklmnopqrstuvwxyz"
str_ap_len=len(str_ap)
dict_ap= {}
dict_pa={}
for i in range(str_ap_len):
    dict_ap[i]=str_ap[i:i+1]
    dict_pa[str_ap[i:i+1]]=i

#判断字符是否是字母
def isalpha(s):
    m=re.match('[A-Za-z]',s)
    if m is not None:
        return True
    else:
        return False
def rot13(str):
    str_len=len(str)
    str_rot13=''
    for i in range(0,str_len):
        va=str[i:i+1]
        if not isalpha(va):
            str_rot13 +=va
            continue
        if va.islower():
            index = dict_pa[va]
            if index < 13:
                str_rot13 += dict_ap[index + 13]
            
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值