大一上学习了Python,课程设计要求实现凯撒密码。加密方式很好写,减密方式是加密的逆过程,但涉及到对对字典和列表的使用,尤其是字符串与列表的转换这里要转一下弯。

加入密文:

Python实现凯撒密码


Python实现凯撒密码


运行效果:

Python实现凯撒密码



源代码:



import string
import math      
def prettyprint(wcdict):#定义函数,找到频率出现次数最高的字母,并返回 
    valkeylist=[]
    for key ,val in wcdict.items():
        valkeylist.append((val,key))
        t=sorted(valkeylist)
        v=len(t)

    return valkeylist[t-1]

  

def casar_code(a,k):#把密文转为原文
    s=str(a)
    k=int(k)
    l=[]
    for  i in range(len(a)):
        l.append(chr(ord(a[i])+k))

    return "".join(l)


a="abcdefghijklmnopqrstuwxyz"
a=list(a)
thearticle=input("enter the article (number of words must more than 100):")
a_list=[]
thearticle=list(thearticle)
for letter in thearticle:
    if letter in a :
        a_list.append(letter.lower)
#得到字典,键为字母 值为出现次数
b={}
for i in a_list:
        
    if i in b:
        b[i]+=1
    else:
        
        b[i]=1
#找到频率出现次数最高的字母,并返回
wcdict=b
valkeylist=[]
for key ,val in wcdict.items():
    
        valkeylist.append((val,key))
valkeylist=sorted(valkeylist)
t=len(valkeylist)
maxletter=valkeylist[t-1]   
p=a.find(maxletter)
shiftkey=p-5
k=shiftkey
print("the encrypted message is :",thearticle)
print('the shift key is:',k)
print("the explain message is:",casar_code(a,k))

需要加密代码的可以留言








相关文章:

  • 2021-12-11
  • 2022-12-23
  • 2021-11-15
  • 2021-12-29
  • 2021-12-31
  • 2021-12-29
  • 2022-12-23
  • 2022-01-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
  • 2021-06-17
相关资源
相似解决方案