Python解决凯撒密码

Ironmanner 2019-11-18 03:35:14
用简单的代码解决
...全文
448 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nangongxiaobai 2019-11-18
  • 打赏
  • 举报
回复
首先把每个字母进行编码得到基础数字 number,其范围为1-26; 假设字母在字符串种的位置为index,该字母经编码后的数字将是:number + index +1; 最后得到余数 result_number = (number + index + 1) / 26的余数。 余数的范围为0-25,对应的字母为Z,A,B...Y。 实现方式不难,我也是新手,不行就用if else就可以得出结果了。
So.ne 2019-11-18
  • 打赏
  • 举报
回复

def Kaisa_crack(obj):
    word_list = ['A','B','C','D','E','F','G',
        'H','I','J','K','L','M','N','O','P','Q',
        'R','S','T','U','V','W','X','Y','Z']
    translation = ''
    n = 1
    for word in obj:
        if word in word_list:
            word_index = word_list.index(word)  #判断当前字母索引值
            word_crack_index = (n + word_index) % 26  #找出破解后单词字母表的索引值
            crack_word = word_list[word_crack_index]  #给破解后字母赋值
            translation += crack_word  #字符拼接
        elif word.upper() in word_list:
            pass #填入如果是小写字母的要求
        else:
            translation += word #其他字符串原样输出
        n += 1
    print(translation)
    
Kaisa_crack('IWASLEANINGPYTHON')
输出的结果是:JYDWQKHVRXRBLHWEE
So.ne 2019-11-18
  • 打赏
  • 举报
回复
如果明文是小写字母,则转换为大写字母加什么?

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧