Python教程

Python--凯撒加密算法

本文主要是介绍Python--凯撒加密算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
'''
第一种算法是凯撒加密的基本算法,解题思路是明白算法规则。maketrans()用于创健映射表,before是原先的格式,after是加密规则。要求字母向左移动k位,利用切片完成这一操作。

第二种是大小写互换,after只需拼接的时候大写字母再前,小写字母在后即可完成这个规则要求

第三种相对前面两种就麻烦了,需要先对大小写字母分别逆序,这就利用了python自带的sorted()函数,把字符转换成逆序的列表。
逆序完成后对他们进行字母左移k位,也就是基本算法的要求。之后对他们进行一个拼接利用join()函数,转换成字符串。再用maketrans()创建映射表,translate
进行加密。
string对象是python提供的,在这里提供了大小写字母,这只是python中常用库函数之一,这也是python的优点,强大的,丰富的库函数。
'''

#基本算法

import string

def kaisa(s,k):

    lower=string.ascii_lowercase

    upper=string.ascii_uppercase

    before=string.ascii_letters

    after=lower[k:]+lower[:k]+upper[k:]+upper[:k]

    table="".maketrans(before,after)#创建映射表

    return s.translate(table)

s="Python is a great programming language. i like it"

a=kaisa(s,3)

print(a)

#大写与小写互换算法

import string

def kaisa(s):

    before=string.ascii_letters

    after=string.ascii_uppercase+string.ascii_lowercase

    table="".maketrans(before,after)#创建映射表

    return s.translate(table)

s="Python is a great programming language. i like it"

a=kaisa(s)

print(a)

小写与大写分别逆序并移动k位进行映射

import string

def kaisa(s,k):

    lower=string.ascii_lowercase

    upper=string.ascii_uppercase

    before=string.ascii_letters

    after1=sorted(lower,reverse=True)#小写逆序

    after2=sorted(upper,reverse=True)#大写逆序,变成列表

    after3=after1[k:]+after1[:k]+after2[k:]+after2[:k]

    after4="".join(after3)#拼接,成为字符串



    table="".maketrans(before,after4)#创建映射表,Return a translation table usable for str.translate().

    return s.translate(table)# return self.__class__(self.data.translate(*args))

s="Python is a great programming language. i like it"

a=kaisa(s,3)

print(a)
这篇关于Python--凯撒加密算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!