版本: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]
ROT13加密解密实现

最低0.47元/天 解锁文章
1426

被折叠的 条评论
为什么被折叠?



