py 二级习题(加密与解密)


题目:

1、比如说,我想 “我喜欢月月” 这句话加密即:将字符串中的每个字符的unicode值全都向后移动三位,即unicode 值加3,然后输出。

2、将按照上述规则加密的文字解密即:将字符串中的每个字符的unicode值全都向前减三。

#caesarencode programme


while True:
    txt = input("please type you word:")

for i in txt:
    if "a" <= i <="z":
        #这是最关键的一步,通过对26取余数,可以再a-z,或者在A-Z,这26个英文字母中重复
        print(chr(ord("a")+(ord(i)-ord("a")+3)%26),end = '')
    elif "A"<= i <="Z":
        print(chr(ord("A")+(ord(i)-ord("A")+3)%26),end = '')
    else:
        print(i,end = '')

#anather way
txt = input("please input you number")
c = 0x4e00
di = {}
for i in range(20902):

#  这也是加密的方法,用的是字典的方法,并且将你输入的每个文字,都转换成了对第一个中文字符的移动,当然这是对中文进行加密,中文的unicode 值范围在0x4e00-0x9fa5之间,一共有20902个文字,当然这里每个要加密的文字向后移动了10451个位置。
    di[chr(c+i)] = chr((i+10451)%20902 + c)  #将所有文字全部移动104521个位置,然后放在字典里,存起来。
    print(len(di))
#对于输入的每个字符,从字典里去找。
for i in txt:
    print(("输出(加解密后)" +di.get(i),end = '')  #another way:   print("输出(加解密后)" + "".join([di.get(i) for i in txt]))
    

我用的第二种方法:

当然还有解密的方法,未完待续。

优质内容筛选与推荐>>
1、2048小游戏主要算法实现
2、计算机硬件知识
3、关于野指针及指针所指内存被回收后的一些误区
4、修改控制台背景的小程序
5、【转】一个大学生自述:我是如何把我的公司做死的


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号