猫史档案馆


【Python作品分享】凯撒密码【作品秀】

用户:梦里觅深海梦里觅深海查看:0 回复:1 评论:0 创建时间:2019-11-18T20:43:57


【作品展示】

center_image

 

【作品介绍】

本作品的创作原因是,《Python游戏编程快速上手》这本书中有讲,于是有动力开始摸索。

 

【作品源代码】

#蓝之音分享,凯撒密码
a='''abcdefghijklmnopqrstuvwxyz,.!?'"()`~@#$%^&|<>{}[]:;*/\1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ'''
while True:
    inp=''
    while True:
        if (inp != '1') and (inp != '2'):
            print('你要加密还是解密?(1加密2解密)')
            inp = str(input())
        else:
            break
    if inp=='1':
        print('你想加密什么内容?')
        while True:
            nn=input()
            n=list(nn)
            c=False
            for i in range(len(n)):
                if n[i] not in a:
                    c=True
            if not c:
                break
            else:
                print('无法加密此信息,请重新输入。')
        print('请输入加密数字(1~25)')
        while True:
            q=input()
            if q in ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25']:
                break
            else:
                print("请输入正确数字(1~25)")
        j = ''
        for i in range(len(n)):       
            if int(a.find(n[i]))+1+int(q)>len(a):
                s = int(a.find(n[i]))+int(q)-len(a)
                j = j+a[s]
            else:
                j = j + a[int(a.find(n[i]))+int(q)]
        print('加密后信息为:'+j)
    
    if inp=='2':
        print('你想解密什么内容?')
        while True:
            nnn = input()
            nq = list(nnn)
            c = False
            for i in range(len(nq)):
                if nq[i] not in a:
                    c = True
            if not c:
                break
            else:
                print('无法解密此信息,请重新输入。')
        while True:
            print('请输入解密码(1~25)')
            p=input()
            if p in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25']:
                break
            else:
                print("请输入正确数字(1~25)")
        j = ''
        for i in range(len(nq)):
            if int(a.find(nq[i]))-int(p) < 0:
                s = 0-(int(a.find(nq[i]))-int(p))
                s=abs(s)
                j = j+a[len(a)-s]
            else:
                j = j + a[int(a.find(nq[i]))-int(p)]
        print('解密后信息为:'+j)















                




 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
梦里觅深海梦里觅深海

赶快试试吧

点赞0


评论