5.2凯撒密码-加密python

该代码示例展示了如何在Python中使用string库的ascii_lowercase、ascii_uppercase和digits属性,结合maketrans和translate函数实现凯撒加密。加密方法是将输入字符串中的每个字符向后移动三位。
摘要由CSDN通过智能技术生成

根据提示,在右侧编辑器补充代码,实现凯撒加密:输入一个字符串,对字符串中的字母和数字进行加密(规定加密偏移量为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 -- 字符串中要过滤的字符列表。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值