5.2凯撒密码-加密python

根据提示,在右侧编辑器补充代码,实现凯撒加密:输入一个字符串,对字符串中的字母和数字进行加密(规定加密偏移量为3,即后移三位),并输出加密后的字符串。

代码如下:

import string

def caesar_cipher(text):
    """接收一个字符串为参数,采用字母表和数字中后面第3个字符代替当前字符的方法
    对字符串中的字母和数字进行替换,实现加密效果,返回值为加密的字符串。
    例如:2019 abc 替换为5342 def """
    ########## Begin ##########
    lower = string.ascii_lowercase
    upper = string.ascii_uppercase
    digit = string.digits
    before = lower + upper + digit
    after = lower[3:]+lower[:3] + upper[3:]+upper[:3]+ digit[3:]+digit[:3]
    result = ''.maketrans(before, after)
    return text.translate(result)

    ########## End ##########

if __name__ == '__main__':
    plaintext = input()
    print(caesar_cipher(plaintext))
    #+

相关知识

为了完成本关任务,你需要掌握:

1.string库

2.maketrans() 函数

3.translate()函数

1.要使用string模块,我们需要先导入: import string

下面介绍几个string的内置属性:

import string

string.ascii_uppercase #所有大写字母
string.ascii_lowercase #所有小写字母
string.ascii_letters #所有字母
string.digits #所有数字

2.maketrans() 和 translate()

由于两个函数要结合使用,所以就一起介绍了。

(1)maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

注:两个字符串的长度必须相同,为一 一对应的关系。

maketrans()方法语法:

str.maketrans(intab, outtab)
  • intab -- 字符串中要替代的字符组成的字符串。
  • outtab -- 相应的映射字符的字符串。

返回值 返回字符串转换后生成的新字符串。

(2)translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。

translate()方法语法:

str.translate(table[, deletechars])
  • table -- 翻译表,翻译表是通过maketrans方法转换而来。
  • deletechars -- 字符串中要过滤的字符列表。

猜你喜欢

转载自blog.csdn.net/m0_70456205/article/details/129778566
今日推荐